Perl語言學習筆記 7 正則表達式

1、正則表達式匹配的是一個模式,只分爲匹配和不匹配兩種。

2、如果模式匹配對象是“$_”,只用把模式寫在/ /之間即可,如:/abc/

3、元字符:.

點號是任何單字符的通配符,換行(\n)除外
4、量詞

*:表示0到無窮次

+:表示1到無窮次

5、圓括號

用來分組,支持反向引用\1、\2,如:/(.)\1/

perl 5.10支持新的反向引用:\g{N}#N可用負數表示相對位置

6、擇一匹配:|

如:(a|b)

7、字符集[],如:[A-Za-z]

簡寫:\d:數字;

\w:單詞(字母、數字、下劃線);

\s:換行、分頁、製表、回車、空格(\n\f\t\r )

\h:匹配橫向空白,[\t ]

\v:匹配縱向的空格,等效於 [\f\n\r]

\R:匹配任何類型的斷行

8、反義簡寫

\D、\W、\S:匹配相應小寫版本以外的字符

[\d\D]:表示任何數字和非數字,可以匹配任何字符

9、模式匹配操作符的寫法

m//、m{}、m()、m<>、m%%等

使用不同的定界符可以提高代碼可讀性:/^http::\/\// = m%^http://%

10、可選修飾符(可以組合使用,如:m{}isx)

/i:大小寫無關的匹配

/s:匹配任意字符,使 . 匹配換行符

/x:可以在模式中加入任意空白和註釋

11、錨位

^:開始錨位,標識一個字符串的開頭

$:結束錨位,標識一個字符串的結尾

\b:單詞邊界錨位,用於匹配任何單詞的首尾,可以單獨使用

12、綁定操作符

默認匹配的是 $_ ,綁定操作符可以指定要匹配的字符串,如:$word =~ /abc/

13、模式串中的內插

如:$what = "larry";    if(/{$what}*/){}

14、捕獲變量

正則表達式處理的結果可以被捕獲,每個括號都被捕獲,依次爲:$1、$2、$3

捕獲變量的有效期到下次成功捕獲新的變量爲止。

不捕獲模式:(?:abc)

命名捕捉:(?<LABEL>PATTERN),如:m/(?<name1>\w+)(and|or)(?<name2>\w+)/;在5.10版本之後可以使用,反向引用可以改爲:\g{LABEL}

自動匹配變量:$`、$&、$':依次爲匹配字符串之前的內容、匹配字符串、匹配字符串之後的內容

15、通用量詞

{}:括號內指定重複的次數,如:(a{3,15})、(a{5,})

16、優先級

圓括號:()、量詞:*/+/?/{m,n}、錨位和序列:^/$、擇一:|、元素:a/[abc]/\d/\l

17、模式測試程序

while(<>){

chomp;

if(/YOUR_PATTERN/){

print "Matched: |$`<$&>$'|\n";

}else{

print "no matched\n";

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章