3.3.4 非捕獲型分組

目前為止,總共介紹了括號的三種用途:

  • 分組:將相關(guān)的元素歸攏到一起,構(gòu)成單個元素栗弟;
  • 多選結(jié)構(gòu):規(guī)定可能出現(xiàn)的多個子表達式吐葵;
  • 引用分組:將子表達式匹配的文本存儲起來规揪,供之后引用

這三種用途并不是彼此獨立的,而是相互重疊的:

  • 單純的分組可以視為“只包含一個多選分支的多選結(jié)構(gòu)”温峭;
  • 整個多選結(jié)構(gòu)也會被視為單個元素猛铅,可以由一個量詞限定;
  • 只要出現(xiàn)了括號凤藏,正則表達式在匹配時就會把括號內(nèi)的子表達式存儲起來提供引用奸忽;

但有時如果不需要引用,保存括號分組的引用信息就會影響性能揖庄;如果表達式比較復(fù)雜栗菜,要處理的文本又很多,更可能嚴重影響性能蹄梢。

為了解決這種問題疙筹,正則表達式提供了非捕獲分組(non-capturing group)。非捕獲分組類似普通捕獲分組,只是在開括號后面緊跟一個問號和冒號(?:...)而咆,這樣的括號叫做非捕獲型括號霍比,它只能限定量詞的作用范圍,不能捕獲文本暴备。在引用分組時悠瞬,分組的編號同樣會按開括號出現(xiàn)的順序從左向右遞增,只是必須以捕獲分組為準涯捻,非捕獲分組會略過浅妆。

例3-35 非捕獲型分組的使用

# 非捕獲型分組
print(re.search(r'(\d{4})-(\d{2})-(\d{2})', '2018-12-20').group(1))  # 2018
print(re.search(r'(?:\d{4})-(\d{2})-(\d{2})', '2018-12-20').group(1))  # 12

非捕獲型分組不需要保存匹配的文本,整個表達式的效率也因此提高汰瘫,但是看起來不如捕獲分組美觀狂打。不過,如果只需要使用括號的分組或者讀選結(jié)構(gòu)的功能混弥,而沒有用到引用分組趴乡,則應(yīng)當盡量使用非捕獲型括號。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝗拿,一起剝皮案震驚了整個濱河市晾捏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哀托,老刑警劉巖惦辛,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異仓手,居然都是意外死亡胖齐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門嗽冒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呀伙,“玉大人,你說我怎么就攤上這事添坊〗肆恚” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵贬蛙,是天一觀的道長雨女。 經(jīng)常有香客問我,道長阳准,這世上最難降的妖魔是什么氛堕? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮野蝇,結(jié)果婚禮上岔擂,老公的妹妹穿的比我還像新娘位喂。我一直安慰自己浪耘,他們只是感情好乱灵,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著七冲,像睡著了一般痛倚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上澜躺,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天蝉稳,我揣著相機與錄音,去河邊找鬼掘鄙。 笑死耘戚,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的操漠。 我是一名探鬼主播收津,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼浊伙!你這毒婦竟也來了撞秋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤嚣鄙,失蹤者是張志新(化名)和其女友劉穎吻贿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哑子,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡舅列,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了卧蜓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帐要。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖烦却,靈堂內(nèi)的尸體忽然破棺而出宠叼,到底是詐尸還是另有隱情,我是刑警寧澤其爵,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布冒冬,位于F島的核電站,受9級特大地震影響摩渺,放射性物質(zhì)發(fā)生泄漏简烤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一摇幻、第九天 我趴在偏房一處隱蔽的房頂上張望横侦。 院中可真熱鬧挥萌,春花似錦、人聲如沸枉侧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榨馁。三九已至憨栽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翼虫,已是汗流浹背屑柔。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留珍剑,地道東北人掸宛。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像招拙,于是被迫代替她去往敵國和親唧瘾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

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

  • 正則表達式有很多流派迫像,也有很多的特性劈愚,不同的語言支持度也是不一樣的。本篇文章是寫Python中的正則表達式的用法的...
    Moscow1147閱讀 1,091評論 0 0
  • 個人根據(jù)《正則指引》內(nèi)容總結(jié)記錄闻妓,侵刪>稹! 轉(zhuǎn)載至我的博客 最近看了編譯原理方面的書由缆,覺得正則表達式非常重要注祖,在各...
    J退後閱讀 599評論 0 0
  • 初衷:看了很多視頻、文章均唉,最后卻通通忘記了是晨,別人的知識依舊是別人的,自己卻什么都沒獲得舔箭。此系列文章旨在加深自己的印...
    DCbryant閱讀 3,993評論 0 20
  • 構(gòu)建掃描器程序的兩個重要方法 boolean hitEnd() 返回true罩缴,說明結(jié)尾有更多的字符可能會改變本次的...
    mxl0814閱讀 571評論 0 1
  • 今年兒子放暑假那會镜会,我剛剛學(xué)會在網(wǎng)上買火車票檬寂,以前都是兒子給買,用智行購票軟件戳表,還沒來得及沾沾自喜桶至,就出了一件糗事...
    歲月靜好如詩閱讀 477評論 2 5