神奇的perl 正規表示式 1

2021-08-30 18:44:52 字數 1677 閱讀 9028

第五章 正規表示式

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 屬性...