字符 | 描述 |
---|---|
\ |
將下一個字符標記為一個特殊字符(File Format Escape痒留,清單見本表)次氨、或一個原義字符(Identity Escape,有^$()*+?.[{|共計12個)陈肛、或一個向后引用(backreferences)妄帘、或一個八進制轉(zhuǎn)義符楞黄。例如,“n ”匹配字符“n ”抡驼」砝“\n ”匹配一個換行符。序列“\\ ”匹配“\ ”而“\( ”則匹配“( ”致盟。 |
^ |
匹配輸入字符串的開始位置碎税。如果設(shè)置了RegExp對象的Multiline屬性,^也匹配“\n ”或“\r ”之后的位置馏锡。 |
$ |
匹配輸入字符串的結(jié)束位置雷蹂。如果設(shè)置了RegExp對象的Multiline屬性,$也匹配“\n ”或“\r ”之前的位置杯道。 |
* |
匹配前面的子表達式零次或多次匪煌。例如,zo能匹配“z ”党巾、“zo ”以及“zoo ”萎庭。等價于{0,}。 |
+ |
匹配前面的子表達式一次或多次齿拂。例如驳规,“zo+ ”能匹配“zo ”以及“zoo ”,但不能匹配“z ”署海。+等價于{1,}吗购。 |
? |
匹配前面的子表達式零次或一次。例如叹侄,“do(es)? ”可以匹配“do ”或“does ”中的“do ”巩搏。?等價于{0,1}昨登。 |
{n} |
n是一個非負整數(shù)趾代。匹配確定的n次。例如丰辣,“o{2} ”不能匹配“Bob ”中的“o ”撒强,但是能匹配“food ”中的兩個o禽捆。 |
{n,} |
n是一個非負整數(shù)。至少匹配n次飘哨。例如胚想,“o{2,} ”不能匹配“Bob ”中的“o ”,但能匹配“foooood ”中的所有o芽隆∽欠“o{1,} ”等價于“o+ ”∨哂酰“o{0,} ”則等價于“o* ”牙躺。 |
{n,m} |
m和n均為非負整數(shù),其中n<=m腕扶。最少匹配n次且最多匹配m次孽拷。例如,“o{1,3} ”將匹配“fooooood ”中的前三個o半抱∨。“o{0,1} ”等價于“o? ”。請注意在逗號和兩個數(shù)之間不能有空格窿侈。 |
? |
非貪心量化(Non-greedy quantifiers):當該字符緊跟在任何一個其他重復修飾符(,+,?炼幔,{n},{n,}史简,{n,m})后面時江掩,匹配模式是非*貪婪的。非貪婪模式盡可能少的匹配所搜索的字符串乘瓤,而默認的貪婪模式則盡可能多的匹配所搜索的字符串环形。例如,對于字符串“oooo ”衙傀,“o+? ”將匹配單個“o ”抬吟,而“o+ ”將匹配所有“o ”。 |
. |
匹配除“\r ”“\n ”之外的任何單個字符统抬。要匹配包括“\r ”“\n ”在內(nèi)的任何字符火本,請使用像“(.|\r|\n) ”的模式。 |
(pattern) |
匹配pattern并獲取這一匹配的子字符串聪建。該子字符串用于向后引用钙畔。所獲取的匹配可以從產(chǎn)生的Matches集合得到,在VBScript中使用SubMatches集合金麸,在JScript中則使用$0…$9屬性擎析。要匹配圓括號字符,請使用“\( ”或“\) ”挥下∽峄辏可帶數(shù)量后綴桨醋。 |
(?:pattern) |
匹配pattern但不獲取匹配的子字符串(shy groups),也就是說這是一個非獲取匹配现斋,不存儲匹配的子字符串用于向后引用喜最。這在使用或字符“(|) ”來組合一個模式的各個部分是很有用。例如“industr(?:y|ies) ”就是一個比“industry|industries ”更簡略的表達式庄蹋。 |
(?=pattern) |
正向肯定預查(look ahead positive assert)瞬内,在任何匹配pattern的字符串開始處匹配查找字符串。這是一個非獲取匹配限书,也就是說遂鹊,該匹配不需要獲取供以后使用。例如蔗包,“Windows(?=95|98|NT|2000) ”能匹配“Windows2000 ”中的“Windows ”秉扑,但不能匹配“Windows3.1 ”中的“Windows ”。預查不消耗字符调限,也就是說舟陆,在一個匹配發(fā)生后,在最后一次匹配之后立即開始下一次匹配的搜索耻矮,而不是從包含預查的字符之后開始秦躯。 |
(?!pattern) |
正向否定預查(negative assert),在任何不匹配pattern的字符串開始處匹配查找字符串裆装。這是一個非獲取匹配踱承,也就是說,該匹配不需要獲取供以后使用哨免。例如“Windows(?\!95|98|NT|2000) ”能匹配“Windows3.1 ”中的“Windows ”茎活,但不能匹配“Windows2000 ”中的“Windows ”。預查不消耗字符琢唾,也就是說载荔,在一個匹配發(fā)生后,在最后一次匹配之后立即開始下一次匹配的搜索采桃,而不是從包含預查的字符之后開始 |
(?<=pattern) |
反向(look behind)肯定預查懒熙,與正向肯定預查類似,只是方向相反普办。例如工扎,“(?<=95|98|NT|2000)Windows ”能匹配“2000Windows ”中的“Windows ”,但不能匹配“3.1Windows ”中的“Windows ”衔蹲。 |
(?<!pattern) |
反向否定預查肢娘,與正向否定預查類似,只是方向相反。例如“(?<!95|98|NT|2000)Windows ”能匹配“3.1Windows ”中的“Windows ”蔬浙,但不能匹配“2000Windows ”中的“Windows ”。 |
x|y |
沒有包圍在()里贞远,其范圍是整個正則表達式畴博。例如,“z|food ”能匹配“z ”或“food ”蓝仲【悴。“(?:z|f)ood ”則匹配“zood ”或“food ”。 |
[xyz] |
字符集合(character class)袱结。匹配所包含的任意一個字符亮隙。例如,“[abc] ”可以匹配“plain ”中的“a ”垢夹。特殊字符僅有反斜線\保持特殊含義溢吻,用于轉(zhuǎn)義字符。其它特殊字符如星號果元、加號促王、各種括號等均作為普通字符。脫字符^如果出現(xiàn)在首位則表示負值字符集合而晒;如果出現(xiàn)在字符串中間就僅作為普通字符蝇狼。連字符 - 如果出現(xiàn)在字符串中間表示字符范圍描述;如果如果出現(xiàn)在首位(或末尾)則僅作為普通字符倡怎。右方括號應(yīng)轉(zhuǎn)義出現(xiàn)迅耘,也可以作為首位字符出現(xiàn)。 |
[^xyz] |
排除型字符集合(negated character classes)监署。匹配未列出的任意字符颤专。例如,“[^abc] ”可以匹配“plain ”中的“plin ”钠乏。 |
[a-z] |
字符范圍血公。匹配指定范圍內(nèi)的任意字符。例如缓熟,“[a-z] ”可以匹配“a ”到“z ”范圍內(nèi)的任意小寫字母字符累魔。 |
[^a-z] |
排除型的字符范圍。匹配任何不在指定范圍內(nèi)的任意字符够滑。例如垦写,“[^a-z] ”可以匹配任何不在“a ”到“z ”范圍內(nèi)的任意字符。 |
[:name:] |
增加命名字符類(named character class)[注 1]中的字符到表達式彰触。只能用于方括號表達式梯投。 |
[=elt=] |
增加當前l(fā)ocale下排序(collate)等價于字符“elt”的元素。例如,[=a=]可能會增加?分蓖、á尔艇、à、?么鹤、?终娃、?、?蒸甜、?棠耕、a炊林、?还绘、?、?殊者、?恨憎、ǎ蕊退、?、?憔恳、?咕痛、?、?喇嘱、?茉贡、?、?者铜、ā腔丧、?、?作烟、?愉粤、?、?拿撩、?衣厘、?、?压恒、?影暴、?、ɑ 探赫。只能用于方括號表達式型宙。 |
[.elt.] |
增加排序元素(collation element)elt到表達式中。這是因為某些排序元素由多個字符組成伦吠。例如妆兑,29個字母表的西班牙語魂拦, "CH"作為單個字母排在字母C之后,因此會產(chǎn)生如此排序“cinco, credo, chispa”搁嗓。只能用于方括號表達式芯勘。 |
\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 |
匹配一個數(shù)字字符恢共。等價于[0-9]战秋。注意Unicode正則表達式會匹配全角數(shù)字字符。 |
\D |
匹配一個非數(shù)字字符讨韭。等價于[^0-9]脂信。 |
\f |
匹配一個換頁符。等價于\x0c和\cL透硝。 |
\n |
匹配一個換行符狰闪。等價于\x0a和\cJ。 |
\r |
匹配一個回車符濒生。等價于\x0d和\cM埋泵。 |
\s |
匹配任何空白字符,包括空格罪治、制表符丽声、換頁符等等。等價于[ \f\n\r\t\v]觉义。注意Unicode正則表達式會匹配全角空格符恒序。 |
\S |
匹配任何非空白字符。等價于[^ \f\n\r\t\v]谁撼。 |
\t |
匹配一個制表符歧胁。等價于\x09和\cI滋饲。 |
\v |
匹配一個垂直制表符。等價于\x0b和\cK喊巍。 |
\w |
匹配包括下劃線的任何單詞字符屠缭。等價于“[A-Za-z0-9_] ”。注意Unicode正則表達式會匹配中文字符崭参。 |
\W |
匹配任何非單詞字符呵曹。等價于“[^A-Za-z0-9_] ”。 |
\ck |
匹配控制轉(zhuǎn)義字符何暮。k代表一個字符奄喂。等價于“Ctrl-k ”。用于ECMA語法海洼。 |
\xnn |
十六進制轉(zhuǎn)義字符序列跨新。匹配兩個十六進制數(shù)字nn表示的字符。例如坏逢,“\x41 ”匹配“A ”域帐。“\x041 ”則等價于“\x04&1 ”是整。正則表達式中可以使用ASCII編碼肖揣。. |
\num |
向后引用(back-reference)一個子字符串(substring),該子字符串與正則表達式的第num個用括號圍起來的捕捉群(capture group)子表達式(subexpression)匹配浮入。其中num是從1開始的十進制正整數(shù)龙优,其上限可能是9[注 2]、31[注 3]事秀、99甚至無限[注 4]彤断。例如:“(.)\1 ”匹配兩個連續(xù)的相同字符。 |
\n |
標識一個八進制轉(zhuǎn)義值或一個向后引用秽晚。如果\n之前至少n個獲取的子表達式瓦糟,則n為向后引用。否則赴蝇,如果n為八進制數(shù)字(0-7)菩浙,則n為一個八進制轉(zhuǎn)義值。 |
\nm |
3位八進制數(shù)字句伶,標識一個八進制轉(zhuǎn)義值或一個向后引用劲蜻。如果\nm之前至少有nm個獲得子表達式,則nm為向后引用考余。如果\nm之前至少有n個獲取先嬉,則n為一個后跟文字m的向后引用。如果前面的條件都不滿足楚堤,若n和m均為八進制數(shù)字(0-7)疫蔓,則\nm將匹配八進制轉(zhuǎn)義值nm含懊。 |
\nml |
如果n為八進制數(shù)字(0-3),且m和l均為八進制數(shù)字(0-7)衅胀,則匹配八進制轉(zhuǎn)義值nml岔乔。 |
\un |
Unicode轉(zhuǎn)義字符序列。其中n是一個用四個十六進制數(shù)字表示的Unicode字符滚躯。例如雏门,\u00A9匹配版權(quán)符號(?)。 |
出處:維基百科-正則表達式