首頁 >後端開發 >php教程 >正規表示式中全部符號解釋

正規表示式中全部符號解釋

巴扎黑
巴扎黑原創
2017-04-20 18:02:153258瀏覽

之前出現了很多正規表示式的符號,這篇文章將會為大家總結所有常用符號。

全部符號解釋

字符   描述   

\    將下一個字元標記為一個特殊字元、或一個原義字元、或一個向後引用、或一個八進制轉義符。例如,’n’ 匹配字元 “n”。 ’\n’ 符合一個換行符號。序列 '\\' 符合「\」 而「\(」 則符合「(」。   

^    符合輸入字串的起始位置。如果設定了RegExp 物件的Multiline 屬性,^ 也符合 '\n ' 或'\r' 之後的位置。

*    符合前面的子運算式零次或多次。前面的子表達式一次或多次。的子表達式零次或一次。 n}    n 是一個非負整數。 ##{n,}    n 是一個非負整數。 o{1,}' 等價於'o+'。 n <= m。 o?'。 }, {n,m}) 後面時,匹配模式是非貪婪的。對於字串“oooo”,'o+?' 將符合單一“o”,而'o+' 將符合所有'o'。符合包括'\n' 在內的任何字符,請使用象'[.\n]' 的模式。所取得的符合可以從產生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中則使用 $0…$9 屬性。若要符合圓括號字符,請使用 ‘\(’ 或 ‘\)’。    

(?:pattern)    匹 配 pattern 但不取得配對結果,也就是說這是一個非取得匹配,不進行儲存以供以後使用。這在使用 “或” 字元 (|) 來組合一個模式的各個部分是很有用。例如, ‘industr(?:y|ies) 就是一個比 ‘industry|industries’ 更簡單的表達式。    

(?=pattern)    正 向預查,在任何符合 pattern 的字串開始處符合尋找字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如,’Windows (?=95|98|NT|2000)’ 能匹配 “Windows 2000″ 中的 “Windows” ,但不能匹配 “Windows 3.1″ 中的 “Windows”。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始。    

(?!pattern)    負 向預查,在任何不符合 pattern 的字串開始處符合尋找字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如’Windows (?!95|98|NT|2000)’ 能符合 “Windows 3.1″ 中的 “Windows”,但不能符合 “Windows 2000″ 中的 “Windows”。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始   

x|y    匹配x或y。例如,’z|food’ 能匹配 “z” 或 “food”。 ’(z|f)ood’ 則符合 “zood” 或 “food”。    

[xyz]    字元集合。匹配所包含的任意一個字元。例如, ‘[abc]’ 可以符合 “plain” 中的 ‘a’。    

[^xyz]    負值字元集合。匹配未包含的任意字元。例如, ‘[^abc]’ 可以符合 “plain” 中的’p'。    

[a-z]    字元範圍。符合指定範圍內的任意字元。例如,’[a-z]’ 可以符合 ‘a’ 到 ‘z’ 範圍內的任意小寫字母字元。    

[^a-z]    負值字元範圍。匹配任何不在指定範圍內的任意字元。例如,’[^a-z]’ 可以符合任何不在 ‘a’ 到 ‘z’ 範圍內的任意字元。    

\b    配對一個字邊界,也就是指單字和空格間的位置。例如, ‘er\b’ 可以匹配”never” 中的 ‘er’,但不能匹配 “verb” 中的 ‘er’。    

\B    配對非單字邊界。 ’er\B’ 能符合 “verb” 中的 ‘er’,但不能符合 “never” 中的 ‘er’。    

\cx    符合 x 所指明的控製字元。例如, \cM 符合一個 Control-M 或回車符。 x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個原義的 ‘c’ 字符。    

\d    符合一個數字字元。等價於 [0-9]。    

\D    符合一個非數字字元。等價於 [^0-9]。    

\f    符合一個換頁符號。等價於 \x0c 和 \cL。    

\n    符合一個換行符號。等價於 \x0a 和 \cJ。    

\r    配對一個回車符號。等價於 \x0d 和 \cM。    

\s    符合任何空白字符,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。    

\S    符合任何非空白字元。等價於 [^ \f\n\r\t\v]。    

\t    符合一個製表符。等價於 \x09 和 \cI。    

\v    符合一個垂直製表符。等價於 \x0b 和 \cK。    

\w    符合包含底線的任何單字字元。等價於’[A-Za-z0-9_]’。    

\W    符合任何非單字字元。等價於 ‘[^A-Za-z0-9_]’。    

\xn    符合 n,其中 n 為十六進位轉義值。十六進制轉義值必須為確定的兩個數字長。例如,’\x41′ 符合 “A”。 ’\x041′ 則等價於 ‘\x04′ & 「1″。正規表示式中可以使用 ASCII 編碼。 .    

\num    符合 num,其中 num 為正整數。對所獲取的匹配的引用。例如,’(.)\1′ 會符合兩個連續的相同字元。    

\n    標識一個八進位轉義值或一個向後引用。如果 \n 之前至少 n 個所獲取的子表達式,則 n 為向後引用。否則,如果 n 為八進制數字 (0-7),則 n 為一個八進制轉義值。    

\nm    標 認識一個八進位轉義值或一個向後引用。如果 \nm 之前至少有 nm 個獲得子表達式,則 nm 為向後引用。如果 \nm 之前至少有 n 個獲取,則 n 為一個後接文字 m 的向後引用。如果前面的條件都不滿足,若 n 和 m 均為八進位數字 (0-7),則 \nm 將符合八進位轉義值 nm。    

\nml    若 n 為八進位數字 (0-3),且 m 和 l 均為八進位數字 (0-7),則符合八進位轉義值 nml。    

\un    符合 n,其中 n 是一個以四個十六進位數字表示的 Unicode 字元。例如, \u00A9 符合版權符號 (?)。    

以上是正規表示式中全部符號解釋的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn