正規表示式的支援由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 正確格式為...