正規表示式總結

2021-07-23 19:28:29 字數 1462 閱讀 8422

正規表示式的支援由pcre庫軟體包提供。下列特殊字元只適用於「匹配正規表示式」和「搜尋替換字串」函式。「匹配模式」函式使用另一套數量較少的正規表示式,但執行速度比「匹配正規表示式」函式快。

正則符號分為字元類、限定符、分組等幾種。

可以匹配字元類:.(句點)、\w匹配字母、\w匹配非字母、\d匹配數字、\d匹配非數字、\r回車、\n換行、\f置頁符、\t製表符、\s非空白字元等。

\w:等同於[a-za-z0-9_]

\b:指空格、標點、換行符這些字元所在位置,並不匹配字元

.:匹配除新行符\n(換行符)之外的任何單個字元。如置於方括號內,.表示文字句點。

限定符:*0次以上匹配、+1次以上匹配、?01次匹配(在其他限定符前表示非貪婪)、n到n次匹配等。

分組和錨:匹配集合中任意字元(^-\)、()子匹配(先外層)、|分割匹配(只會返回第乙個匹配成功的)、^匹配字元第乙個表示從串開始匹配(中表示不包含)、$匹配字元最末表示從串結束匹配、\匹配特殊限定字元,如$(與轉義區別)

捕獲:(exp)        匹配exp,並捕獲文字到自動命名的組裡

(?exp)  匹配exp,並捕獲文字到名稱為name的組裡,也可以寫成(?'name'exp)

(?:exp)            匹配exp,不捕獲匹配的文字,也不給此分組分配組號;()預設情況下會將其中exp匹配的內容捕獲到組裡

零寬斷言:

(?=exp)        匹配exp前面的位置

(?<=exp)       匹配exp後面的位置

(?(?!exp)         匹配後面跟的不是exp的位置

注釋:(?#comment)  這種型別的分組不對正規表示式的處理產生任何影響,用於提供注釋讓人閱讀

要特別注意的是,零寬斷言是不占用位置的,也就是說,匹配結果裡是不會返回它的。

後向引用:

使用後向引用,可在同一正規表示式中指代已出現的子匹配。例子:(["*$])(\w+)\1\2\1

可以匹配"foo"foo"、*bar*bar*。

「匹配正規表示式」函式

輸入字串、正規表示式不支援空字元,即\s,包含空格、換行、製表符、回車等等。經測試,輸入字串正常讀入

.句點不可以匹配換行符

「搜尋替換字串」函式

1、「搜尋替換字串」函式不支援字串中包含空字元。但是實際測試,似乎沒問題

2、替換字串輸入端適用下列特殊字元:$n、$表示第n個子匹配字元。n大於9只能用後一種表示方法

「匹配模式」函式

僅支援如下匹配字元:.、+、*、^、$、\、、?;不支援零寬斷言、不支援\b等類似情況、不支援括號()和豎直線(|)等;

可以包含空格;

搜尋+可以使用[+];

使用字元常量傳入字串,可以識別空白字元\s;

匹配模式中.句點可以匹配換行符

以上函式只能返回字串中第乙個匹配到的字元,當有多個可匹配的字元,第乙個之後的字元無法匹配。可以採用迴圈不斷匹配剩下的字串。

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式總結

正規表示式用於操作字串的規則,這些規則由一些符號所組成。使用正規表示式可以進行更複雜的操作,而且這種複雜的操作要比方法短的多。功能 1,匹配。使用的是string類中的matches方法。2,切割。使用的string類split方法。3,替換。4,查詢。1,將正則規則通過pattern類中的stat...

正規表示式總結

常用正規表示式總結 w w w 驗證 號碼 d d d 正確格式為 x x xx x xx x 和 xx 驗證身份證號 15位或18位數字 d d 驗證一年的12個月 0?1 9 1 0 2 正確格式為 01 09 和 1 12 驗證乙個月的31天 0?1 9 1 2 0 9 30 31 正確格式為...