PCRE正則表達式全集

字符 描述
\ 將下一個字符標記為一個特殊字符(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-Za-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)符號(?)。

出處:維基百科-正則表達式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末掸掏,一起剝皮案震驚了整個濱河市茁影,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌丧凤,老刑警劉巖募闲,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異息裸,居然都是意外死亡蝇更,警方通過查閱死者的電腦和手機沪编,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門呼盆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蚁廓,你說我怎么就攤上這事访圃。” “怎么了相嵌?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵腿时,是天一觀的道長。 經(jīng)常有香客問我饭宾,道長批糟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任看铆,我火速辦了婚禮徽鼎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘弹惦。我一直安慰自己否淤,他們只是感情好,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布棠隐。 她就那樣靜靜地躺著石抡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪助泽。 梳的紋絲不亂的頭發(fā)上啰扛,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天嚎京,我揣著相機與錄音,去河邊找鬼隐解。 笑死挖藏,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的厢漩。 我是一名探鬼主播膜眠,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼溜嗜!你這毒婦竟也來了宵膨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤炸宵,失蹤者是張志新(化名)和其女友劉穎辟躏,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體土全,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡捎琐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了裹匙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瑞凑。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖概页,靈堂內(nèi)的尸體忽然破棺而出籽御,到底是詐尸還是另有隱情,我是刑警寧澤惰匙,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布技掏,位于F島的核電站,受9級特大地震影響项鬼,放射性物質(zhì)發(fā)生泄漏哑梳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一绘盟、第九天 我趴在偏房一處隱蔽的房頂上張望鸠真。 院中可真熱鬧,春花似錦奥此、人聲如沸弧哎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撤嫩。三九已至,卻和暖如春蠢终,著一層夾襖步出監(jiān)牢的瞬間序攘,已是汗流浹背茴她。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留程奠,地道東北人丈牢。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像瞄沙,于是被迫代替她去往敵國和親己沛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360