正則表達(dá)式之捕獲組和非捕獲組

捕獲組

使用小括號(hào)指定一個(gè)子表達(dá)式后,匹配這個(gè)子表達(dá)式的文本(也就是此分組捕獲的內(nèi)容)可以在表達(dá)式或其它程序中作進(jìn)一步的處理殖侵。默認(rèn)情況下,每個(gè)捕獲組會(huì)自動(dòng)擁有一個(gè)組號(hào),規(guī)則是:從左向右和屎,以分組的左括號(hào)為標(biāo)志,第一個(gè)出現(xiàn)的分組的組號(hào)為1春瞬,第二個(gè)為2柴信,以此類推。 也可以自己指定子表達(dá)式的組名宽气。這樣在表達(dá)式或程序中可以直接引用組名随常,當(dāng)然也可以繼續(xù)使用組號(hào)。但如果正則表達(dá)式中同時(shí)存在普通捕獲組和命名捕獲組萄涯,那么捕獲組的編號(hào)就要特別注意绪氛,編號(hào)的規(guī)則是先對(duì)普通捕獲組進(jìn)行編號(hào),再對(duì)命名捕獲組進(jìn)行編號(hào)涝影。詳細(xì)語法如下:

1.(pattern): 匹配pattern并捕獲結(jié)果枣察,自動(dòng)設(shè)置組號(hào)。e.g.

(abc)+d :  匹配到abcd或者abcabcd

2.(?<name>pattern)或(?'name'pattern) : 匹配pattern并捕獲結(jié)果燃逻,設(shè)置name為組名序目。
3.\num: 對(duì)捕獲組的反向引用。其中 num 是一個(gè)正整數(shù)伯襟。e.g.

(\w)(\w)\2\1: 匹配到abba

4.\k< name >或\k' name ' : 對(duì)命名捕獲組的反向引用猿涨。其中 name 是捕獲組名。e.g.

(?<group>\w)abc\k<group>  : 匹配到xabcx

非捕獲組

非捕獲組只匹配結(jié)果姆怪,但不捕獲結(jié)果嘿辟,也不會(huì)分配組號(hào)舆瘪。

  1. (?:pattern) : 匹配pattern,但不捕獲匹配結(jié)果红伦。e.g.:
industr(?:y|ies)
可以匹配到'industry'或'industries'

2.(?=pattern): 零寬度正向預(yù)查(正向零寬斷言)英古,匹配后面跟的是pattern的內(nèi)容,不匹配pattern昙读,也不捕獲匹配結(jié)果召调。e.g.

Windows(?=95|98|NT|2000)
能匹配到"Windows2000" 中的 "Windows"
不能匹配到 "Windows3.1" 中的 "Windows"

3.(?!pattern): 零寬度負(fù)向預(yù)查(負(fù)向零寬斷言),匹配后面跟的不是pattern的內(nèi)容蛮浑,不匹配pattern唠叛,不捕獲匹配結(jié)果。e.g.:

Windows(?!95|98|NT|2000)
能匹配 "Windows3.1" 中的 "Windows"
不能匹配 "Windows2000" 中的 "Windows"

4.(?<=pattern): 零寬度正向回查(正向零寬斷言)沮稚,匹配前面是pattern的內(nèi)容艺沼,不匹配pattern,不捕獲匹配結(jié)果蕴掏。e.g.

(?<=Office|Word|Excel)2000
能匹配 " Office2000" 中的 "2000"
不能匹配 "Windows2000" 中的 "2000"

5.(?<!pattern): 零寬度負(fù)向回查(負(fù)向零寬斷言)障般,匹配前面不是pattern的內(nèi)容,不匹配pattern盛杰,不捕獲匹配結(jié)果挽荡。e.g.:

(?<!Office|Word|Excel)2000
能匹配 " Windows2000" 中的 "2000"
不能匹配 " Office2000" 中的 "2000"

正則表達(dá)式中的注釋

(?#comment) :這種類型的分組不對(duì)正則表達(dá)式的處理產(chǎn)生任何影響

python對(duì)于非捕獲組的支持

python中的re模塊可以支持上述非捕獲組1、2即供、3樣式的正則定拟,但是不支持4、5樣式的正則逗嫡,4青自、5樣式的正則會(huì)報(bào)錯(cuò)“sre_constants.error: look-behind requires fixed-width pattern”,意思是“回查需要定長(zhǎng)的模式”驱证,所謂定長(zhǎng)延窜,如“(?<=Office.{4})2000”即為定長(zhǎng),“(?<=Office.*)2000”即為不定長(zhǎng)雷滚;
4樣式的正則可以改寫為:(?:(?<=Office)|(?<=Word)|(?<=Excel))2000"需曾。

整理自:http://www.cnblogs.com/wuhong/archive/2011/02/18/1957017.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吗坚,一起剝皮案震驚了整個(gè)濱河市祈远,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌商源,老刑警劉巖车份,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異牡彻,居然都是意外死亡扫沼,警方通過查閱死者的電腦和手機(jī)出爹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缎除,“玉大人严就,你說我怎么就攤上這事∑鞴蓿” “怎么了梢为?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)轰坊。 經(jīng)常有香客問我铸董,道長(zhǎng),這世上最難降的妖魔是什么肴沫? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任粟害,我火速辦了婚禮,結(jié)果婚禮上颤芬,老公的妹妹穿的比我還像新娘悲幅。我一直安慰自己,他們只是感情好驻襟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布夺艰。 她就那樣靜靜地躺著,像睡著了一般沉衣。 火紅的嫁衣襯著肌膚如雪郁副。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天豌习,我揣著相機(jī)與錄音存谎,去河邊找鬼。 笑死肥隆,一個(gè)胖子當(dāng)著我的面吹牛既荚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播栋艳,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼恰聘,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了吸占?” 一聲冷哼從身側(cè)響起晴叨,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎矾屯,沒想到半個(gè)月后兼蕊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡件蚕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年孙技,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了产禾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡牵啦,死狀恐怖亚情,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哈雏,我是刑警寧澤势似,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站僧著,受9級(jí)特大地震影響履因,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盹愚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一栅迄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧皆怕,春花似錦毅舆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至虱黄,卻和暖如春悦即,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背橱乱。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國打工辜梳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人泳叠。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓作瞄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親危纫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宗挥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容