python与正则表达式(part4)--正则表达式分组
文章目錄
- 正則表達(dá)式分組
- 定義
- 作用
- 捕獲組
- 注意事項(xiàng)
正則表達(dá)式分組
定義
在正則表達(dá)式中,以()建立正則表達(dá)式的內(nèi)部分組,子組是正則表達(dá)式的一部分,可以作為內(nèi)部整體操作對(duì)象。
備注:當(dāng)我們的正則表達(dá)式中存在子組時(shí),就不能用findall(),則要用search().
作用
①可以被作為整體操作,改變?cè)址牟僮鲗?duì)象
例子1(改變 +號(hào) 重復(fù)的對(duì)象)
In : re.search(r'(ab)+',"ababababab").group() Out: 'ababababab'備注:匹配到,就會(huì)返回被匹配的內(nèi)容;匹配不到,則會(huì)報(bào)錯(cuò)。
例子2(改變 |號(hào) 操作對(duì)象)
In : re.search(r'(王|李)\w{1,3}',"王者榮耀").group() Out: '王者榮耀'備注:如果不加【()】小括號(hào),將匹配【王】或【李\w{1, 3}】.若加小括號(hào)則【王|李】會(huì)作為一個(gè)內(nèi)部整體,將匹配【王\w{1, 3}】或【李\w{1, 3}】
②可以通過編程語言某些接口,獲取匹配內(nèi)容中,子組對(duì)應(yīng)的內(nèi)容部分
備注:子組發(fā)揮作用的前提是,整個(gè)正則表達(dá)式能夠匹配到東西。
例子1
In:re.search(r'(https|http|ftp|file)://\S+',"https://www.baidu.com").group(1) Out: 'https'捕獲組
可以給正則表達(dá)式的子組起一個(gè)名字,表達(dá)該子組的意義。這種有名稱的子組即為捕獲組。
格式:(?P<名字>正則表達(dá)式)
例子1
In : re.search(r'(?P<pig>ab)+',"ababababab").group('pig') Out: 'ab'例子2
In: re.search(r'(?P<FirstName>王|李)\w{1,3}',"王者榮耀").group("FirstName") Out: '王'注意事項(xiàng)
①一個(gè)正則表達(dá)式中可以包含多個(gè)子組
②子組可以嵌套,但是不要重疊或者嵌套結(jié)構(gòu)復(fù)雜
③子組序列號(hào)一般從外到內(nèi),從左到右計(jì)數(shù)
總結(jié)
以上是生活随笔為你收集整理的python与正则表达式(part4)--正则表达式分组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python与正则表达式(part3)-
- 下一篇: python与正则表达式(part5)-