第五章 正規表示式
1. perl正則基礎
正規表示式是一種序列或字元模式,負責在搜尋和替換文字時對文字內容進行字串匹配。perl中的正規表示式由待匹配字串或模式串或2者混合而成,一般以斜槓(/)作為定界符。
perl正則模式串主要有以下幾種:
. 匹配單個除換行符以外的字元
a? 匹配 0 次或一次 a 字元(a為任意字元,如:a*、b*、2*等)
a* 匹配 0 次或多次 a 字元(a為任意字元,如:a*、b*、2*等)
a+ 匹配 1 次或多次 a 字元(a為任意字元,如:a+、b+、2+等)
.* 匹配 0 次或一次的任何字元
.+ 匹配 1 次或多次的任何字元
匹配剛好是 m 個 的指定字元
匹配在 m個 以上 n個 以下 的指定字元
匹配 m個 以上 的指定字元
匹配符合 內的字元
[^]
匹配不符合 內的字元
(x|y)
匹配x或y
(x) 匹配x模式串
[0-9]
匹配單個數字
[a-z]
匹配單個小寫字母
[^0-9]
匹配單個非數字字元
[^a-z]
匹配單個非小寫字母字元
^ 匹配字元開頭的字元
$ 匹配字元結尾的字元
\d 匹配單個數字的字元,和[0-9] 語法一樣
\d+
匹配多個數字字元,和[0-9]+ 語法一樣
\d 單個非數字字元
\d+
匹配多個非數字字元
\w 單個英文本母或數字的字元,
\w 單個非英文本母或數字的字元
\w+
匹配多個非英文本母或數字字元
\s 空格等同於[ \n\t\r\f]
\s+
等同於[ \n\t\r\f]+
\s
單個非空格字元
\s+
多個非空格字元
我們來看幾個例子:
/abc/
匹配所有包括abc的字串,比如,匹配「123abc***」、「abcde」。
/ab(c|d)/ 匹配所有包括abc或abd的字串,比如,匹配「123abc***」、「abde88」
/abc\d+/ 匹配所有包括abc後接至少乙個數字的字串,比如,匹配「xxabc456」、 「abc678de」。
/^abc\d+/ 匹配所有以abc後接至少乙個數字開頭的字串,比如,匹配「abc456」、 「abc678de」,不匹配「xxabc456」、 「xxbc456」。
/^abc\d+$/ 匹配所有以abc開頭,至少乙個數字結尾,且abc後接至少乙個數字的字串,換句話說,僅匹配符合abc後接至少乙個數字,不包括任何其它字元。比如,匹配「abc456」、 「abc1」,不匹配「abc456x」、 「bc456」、「abc」。
/[^0-9]abc\d+/ 匹配所有包括非數字字元後接abc及至少乙個數字的字串,比如,匹配「xyabc456」、 「aabc1」,不匹配「456abc98」、 「bdc456」、「0abc1」。
/^[^0-9]abc\d+/ 匹配所有以非數字字元後接abc及至少乙個數字的形式開頭的字串,比如,匹配「aabc456」、 「xabc1you」,不匹配「8abc98ww」、 「bd456」、「0abc1」。
perl正規表示式 1
代表任何乙個單字元,不匹配換行符.是量詞,表示前面內容出現0到多次.也是量詞,表示前面內容出現1到多次.字符集簡寫 d表示乙個數字 w表示乙個單詞字元 數字,字母,下劃線 s表示乙個空白,可以匹配換行符,製表符,換頁符,回車符,空格 d表示乙個非數字相當於 d w表示乙個非單詞字元相當於 w s表示...
perl 正規表示式1
語法介紹 yabba dabba doo if abba if語句的條件表示式中,是匹配操作符,預設用它匹配 中的字元。匹配操作符中的空格有效 案例練習 利用檔案控制代碼讀取和寫入檔案,並替換某一行中的特定內容,輸出至另外一行 喜大普奔,我做出來了。小菜菜,三瓜倆棗就開心的不得了 原檔案 patte...
Perl 正規表示式
正規表示式文中列表 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個後向引用 或乙個八進位制轉義符。匹配輸入字串的開始位置。如果設定了 regexp 物件的multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置。如果設定了 regexp 物件的multiline 屬性...