perl語言程式設計 正規表示式篇

2021-04-25 10:16:58 字數 1525 閱讀 9008

使用正規表示式時,需要使用兩個字串處理運算子:模式匹配運算子m//和替換運算子s///。此處還將附帶介紹另乙個密切相關的運算子,即轉換運算子tr///,它進行一些簡單的轉換,但不使用正規表示式。

while($line=<>)

說明:用=~運算子來指定m//運算子查詢的字串。

當使用//做界定符時m可省略,即m/exit/ 和/exit/等效。

但是使用自己規定的界定符時一定要帶m,如m@exit@,m,m=exit=(和m/exit/等效)。

$text = "pretty young, but not very young.";

$text =~ s/young/old/;

print $text;

pretty old, but not very young.

s///和m//一樣可以將//替換為自己習慣的界定符。

m//和s///都是從左向右做匹配,一旦匹配成功則不往下繼續執行匹配。

我們可以使用修飾符,使它們的功能更強大。下面列出一些常用的與m//和s///一起使用的修飾符

i     --- 忽略大小寫

g   --- 在全域性範圍內執行所有可能的操作

m   --- 讓^和$匹配換行符/n

x    --- 忽略模式中的空白,並允許進行注釋

s    --- 讓. 匹配新行

o    --- 僅對模式進行一次編譯

perl中在正規表示式中使用的特殊字元(使用時前面加上反斜線):

/d匹配非數字字元

/d匹配數字字元

/l小寫,直到遇到/e

/l小寫下乙個字元

/n換行

/r回車

/s匹配非空白字元

/s匹配空白字元

/t製表符

/u大寫,直到遇到/e

/u大寫下乙個字元

/w匹配非單詞字元

/w匹配乙個單詞字元(字母數字字元和「_」)

所有可用的perl量詞:

*匹配0詞或者多次

+匹配1次或者多次

?匹配1次或者0次

匹配n次

匹配至少n次

匹配至少n次,但只多m次

斷言(也稱為錨),用來匹配字串中的某些條件,非真實資料。

下面是一些合法的perl斷言:

^匹配行首

$匹配行尾(或末尾前的新行)

/a僅僅匹配字串的開頭

/b匹配非單詞邊界

/b匹配單詞邊界

/g僅僅匹配前乙個m//g剩餘的內容(僅僅能和/g一起使用)

/z僅僅匹配字串的末尾,或者末尾前的新行

/z僅僅匹配字串的末尾

perl中的元字元:

包括 / | (){}^$*+?.

使用時,在它們面前加入反斜線/,就可以確保它們照字面意思解釋,而不是做元字元用。 

Perl語言程式設計 正規表示式

perl語言之所以是一種非常擅長文字處理的語言,我想很多都是由於正規表示式的緣故。perl語言中的正規表示式功能基本是所有常用語言中最強大的,以至於很多語言設計正規表示式支援的時候都參考perl語言的正規表示式。正規表示式描述的是一種匹配模式,換言之就是可以快速判斷目標字串是否與我們提供的模板匹配,...

Perl 正規表示式

正規表示式文中列表 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個後向引用 或乙個八進位制轉義符。匹配輸入字串的開始位置。如果設定了 regexp 物件的multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置。如果設定了 regexp 物件的multiline 屬性...

Perl正規表示式

元字元 元字元的含義是具有特殊含義的字元,即為元字元,元字元包括 點號能夠匹配所有的單字元,但是換行字元除外 n 簡易量詞 記載匹配正規表示式的時候有些需要重複的字元或者字串,我們在表示這種重複的形式的時候,即是量詞,我們知道的量詞有 表示至少重複一次,表示重複一次或者一次 以上,指的是重複一次或者...