\ |
將下一個字符標記爲一個特殊字符、或一個原義字符、或一個向後引用、或一個八進制轉義符。例如,“n ”匹配字符“n ”。“\n ”匹配一個換行符。串行“\\ ”匹配“\ ”而“\( ”則匹配“( ”。 |
^ |
匹配輸入字符串的開始位置。如果設置了RegExp 對象的Multiline 屬性,^ 也匹配“\n ”或“\r ”之後的位置。 |
$ |
匹配輸入字符串的結束位置。如果設置了RegExp 對象的Multiline 屬性,$ 也匹配“\n ”或“\r ”之前的位置。 |
* |
匹配前面的子表達式零次或多次。例如,zo* 能匹配“z ”以及“zoo ”。* 等價於{0,} 。 |
+ |
匹配前面的子表達式一次或多次。例如,“zo+ ”能匹配“zo ”以及“zoo ”,但不能匹配“z ”。+ 等價於{1,} 。 |
? |
匹配前面的子表達式零次或一次。例如,“do(es)? ”可以匹配“does ”或“does ”中的“do ”。? 等價於{0,1} 。 |
{n} |
n 是一個非負整數。匹配確定的n 次。例如,“o{2} ”不能匹配“Bob ”中的“o ”,但是能匹配“food ”中的兩個o 。 |
{n,} |
n 是一個非負整數。至少匹配n 次。例如,“o{2,} ”不能匹配“Bob ”中的“o ”,但能匹配“foooood ”中的所有o 。“o{1,} ”等價於“o+ ”。“o{0,} ”則等價於“o* ”。 |
{n,m} |
m 和n 均爲非負整數,其中n<=m 。最少匹配n 次且最多匹配m 次。例如,“o{1,3} ”將匹配“fooooood ”中的前三個o 。“o{0,1} ”等價於“o? ”。請注意在逗號和兩個數之間不能有空格。 |
? |
當該字符緊跟在任何一個其他限制符(* ,+ ,? ,{n} ,{n,} ,{n,m} )後面時,匹配模式是非貪婪的。非貪婪模式儘可能少的匹配所搜索的字符串,而默認的貪婪模式則儘可能多的匹配所搜索的字符串。例如,對於字符串“oooo ”,“o+? ”將匹配單個“o ”,而“o+ ”將匹配所有“o ”。 |
. |
匹配除“\n ”之外的任何單個字符。要匹配包括“\n ”在內的任何字符,請使用像“(.\n) ”的模式。 |
(pattern) |
匹配pattern 並獲取這一匹配。所獲取的匹配可以從產生的Matches 集合得到,在VBScript 中使用SubMatches 集合,在JScript 中則使用$0…$9 屬性。要匹配圓括號字符,請使用“\( ”或“|</code>”。
|
(?:pattern) |
匹配pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供以後使用。這在使用或字符“(|) ”來組合一個模式的各個部分是很有用。例如“industr(?:y|ies) ”就是一個比“industry|industries ”更簡略的表達式。 |
(?=pattern) |
正向肯定預查,在任何匹配pattern 的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如,“Windows(?=95|98|NT|2000) ”能匹配“Windows2000 ”中的“Windows ”,但不能匹配“Windows3.1 ”中的“Windows ”。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始。 |
(?!pattern) |
正向否定預查,在任何不匹配pattern 的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如“Windows(?!95|98|NT|2000) ”能匹配“Windows3.1 ”中的“Windows ”,但不能匹配“Windows2000 ”中的“Windows ”。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始。 |
(?<=pattern) |
反向肯定預查,與正向肯定預查類擬,只是方向相反。例如,“(?<=95|98|NT|2000)Windows ”能匹配“2000Windows ”中的“Windows ”,但不能匹配“3.1Windows ”中的“Windows ”。 |
(?<!pattern) |
反向否定預查,與正向否定預查類擬,只是方向相反。例如“(?<!95|98|NT|2000)Windows ”能匹配“3.1Windows ”中的“Windows ”,但不能匹配“2000Windows ”中的“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 匹配版權符號(© )。 |