1. 程式人生 > >正則表示式中的萬用字元

正則表示式中的萬用字元

\ 標記下一個字元是特殊字元或文字。例如,"n" 和字元 "n" 匹配。"\n" 則和換行字元匹配。


^ 匹配輸入的開頭。


$ 匹配輸入的末尾。


* 匹配前一個字元零或多次。例如,"zo*" 與 "z" 或 "zoo" 匹配。


+ 匹配前一個字元一次或多次。例如,"zo+" 與 "zoo" 匹配,但和 "z" 不匹配。


? 匹配前一個字元零或一次。例如,"a?ve?" 和 "never" 中的 "ve" 匹配。


. 匹配除換行字元外的任何單個字元。


x|y 匹配 x 或 y


{n} 匹配 n 次。n 是非負整數


{n,} n 是一個非負整數。至少匹配 n 次。例如,"o{2,}" 和 "Bob" 中的 "o" 不匹配,但和 "foooood" 中的所有 o 匹配。"o{1,}" 與 "o+" 等效。"o{0,}" 和 "o*" 等效。


{n,m} m 和 n 是非負整數。至少匹配 n 次而至多匹配 m 次。例如,"o{1,3}" 和 "fooooood" 中的前三個 o 匹配。"o{0,1}" 和 "o?" 等效。


[xyz] 匹配括號內的任一字元。例如,"[abc]" 和 "plain" 中的 "a" 匹配。


[^xyz] 匹配非括號內的任何字元。例如,"[^abc]" 和 "plain" 中的 "p" 匹配。


[a-z] 字元範圍。和指定範圍內的任一字元匹配。例如,"[a-z]" 匹配 "a" 到 "z"範圍內的任一小寫的字母表字元。


[^m-z] 否定字元範圍。匹配不在指定範圍內的任何字元。例如,"[m-z]" 匹配不在 "m" 到 "z"範圍內的任何字元。


\b 匹配字的邊界,也就是說,在字和空格之間的位置。例如,"er\b" 和 "never" 中的 "er" 匹配,但和 "verb" 中的 "er" 不匹配。


\B 匹配非字邊界。"ea*r\B" 和 "never early" 中的 "ear" 匹配。


\d 匹配數字字元。等價於 [0-9]。


\D 匹配非數字字元。等價於 [^0-9]。


\f 匹配換頁字元。


\n 匹配換行字元。


\r 匹配回車符字元。


\s 匹配任何空白,包括空格、製表、換頁等。與 "[ \f\n\r\t\v]" 等效。


\S 匹配任何非空白字元。與 "[^ \f\n\r\t\v]" 等效。


\t 匹配製表字符。


\v 匹配垂直製表符。


\w 匹配包括下劃線在內的任何字字元。與 "[A-Za-z0-9_]" 等效。


\W 匹配任何非字字元。與 "[^A-Za-z0-9_]" 等效。


\num 匹配 num,其中 num 是一個正整數。返回記住的匹配的引用。例如,"(.)\1" 匹配兩個連續的同一字元。


\n 匹配 n,其中 n 是八進位制換碼值。八進位制換碼值必須是 1、2、或 3 位長。例如,"\11" 和 "\011" 都匹配製表字符。"\0011" 和 "\001" & "1" 是等效的。八進位制換碼值必須不超過 256。如果超過了,則只有前兩位組成表示式。允許在正則表示式中使用 ASCII 碼。


\xn 匹配 n,其中 n 是十六進位制換碼值。十六進位制換