国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python3正則表達(dá)式之:(?(id/name)yes-pattern|no-pattern)條件性匹配

Python3正則表達(dá)式之:(?(id/name)yes-pattern|no-pattern)條件性匹配

2022-01-19 00:16腳本之家 Python

(?(id/name)yes-pattern|no-pattern)的作用是對于給出的id或者name,先嘗試去匹配 yes-pattern部分的內(nèi)容,如果id或name條件不滿足,則去匹配no-pattern部分的內(nèi)容

1. 用途

(?(id/name)yes-pattern|no-pattern)的作用是:

對于給出的id或者name,先嘗試去匹配 yes-pattern部分的內(nèi)容;

如果idname條件不滿足,則去匹配no-pattern部分的內(nèi)容;

這句話聽著還是很拗口的,或者說一下子還是很難懂的。

2. 參數(shù)含義

此處的name或id,是針對(當(dāng)前位置的)條件性匹配之前的,某個(gè)已經(jīng)通過group去分組的內(nèi)容

name: 如果是有命名的分組,即named group,則對應(yīng)的該分組就有對應(yīng)的name,即此處所指的就是對應(yīng)的name;

id: 如果是無命名的分組,即unnamed group,則對應(yīng)的該分組也有對應(yīng)的分組的編號,稱為group的number,也叫做id,對應(yīng)的就是這里的id;

yes-pattern: 如果前面的group匹配成功,則此處,就執(zhí)行yes-pattern的匹配;

no-pattern: 如果前面group匹配不成功,即沒有找到符合該的group內(nèi)容,則就匹配no-pattern;

注意: 上面的yes-patternno-pattern,都是普通的正則表達(dá)式,用來匹配所需的內(nèi)容。

3. 語法

如果存在no-pattern,則前面要有個(gè)豎杠'|',用來分隔yes-patternno-pattern

如果不想匹配no-pattern的部分,則可以連同'|'一起不寫。

實(shí)例:

?
1
>>> re.search(r'(\d+)?(?(1)\w+|zzvips\.\w+)', 'zzvips.com')>>> re.search(r'(\d+)?(?(1)\w+)', '100zzvips')

其中的?(1)代表序號為1的group, 也就是上面(\d+), 第二個(gè)表達(dá)式中就沒有使用no-pattern

4. 用法詳解

還是上面的例子, 我們變換一下, 用實(shí)例探索它們的詳細(xì)用法及技巧

4.1 把(\d+)后面的問號去掉, 也就是說必須存在group 1,不是可有可無

執(zhí)行:

?
1
2
>>> re.search(r'(\d+)(?(1)\w+|zzvips\.\w+)', 'zzvips.com')
>>>

整體規(guī)則匹配失敗,返回為空,no-pattern部分并沒有按照預(yù)想執(zhí)行。

 4.2 改一下匹配字符串

?
1
>>> re.search(r'(\d+)(?(1)\w+|zzvips\.\w+)', '1zzvips.com')

可以匹配到, group1和yes部分都匹配到了

 4.3 group可有可無的情況(group后增加問號)

?
1
2
>>> re.search(r'(\d+)?(?(1)\w+|zzvips\.\w+)', 'zzvips')
>>>

如果group沒有匹配到,且它可有可無, 那么group會被認(rèn)為匹配不成功,繼續(xù)執(zhí)行no-pattern部分匹配

 4.4 只匹配group 1 部分, yes部分沒有匹配

?
1
>>> re.search(r'(\d+)(?(1)\w+|zzvips\.\w+)', '1000')

只匹配group 1 部分, yes部分沒有匹配,也是有匹配結(jié)果的, 那說明yes-pattern和no-pattern不一定必須匹配成功

5.結(jié)論

1. 通過4.1 4.2  4.3 對比可以發(fā)現(xiàn):

當(dāng)該特殊規(guī)則中的作為判斷條件的組本身不允許為空的時(shí)候,在該組對目標(biāo)字符串匹配為空的情況下,整體規(guī)則匹配失敗,所以后面的作為整體一部分的特殊規(guī)則自然也就無效了。所以要想特殊規(guī)則的no-pattern生效,必須判斷條件對應(yīng)組匹配數(shù)可以為0。

2. 通過4.4可知:可以僅匹配group部分, 如果yes-patternno-pattern沒有匹配到, 則會僅輸出group匹配的內(nèi)容

更多關(guān)于Python3正則表達(dá)式的相關(guān)教程請查看下面的相關(guān)鏈接

原文鏈接:https://www.pythontab.com/html/2019/pythonhexinbiancheng_0719/1463.htm

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲免费一区 | a黄视频| 久久精品国产99国产 | 欧美视频在线一区 | 在线视频自拍 | 欧美日韩精品一区二区三区蜜桃 | 成人三级视频 | 亚洲欧美日韩精品久久奇米色影视 | 蜜桃传媒一区二区 | 国产一区二区三区播放 | 国产成人自拍视频在线观看 | 99在线热视频 | 欧美成人激情视频 | 欧美福利视频 | 黄色av免费在线观看 | 亚洲成人av一区二区三区 | 国产欧美日本 | 国产一区二区三区在线免费看 | www久久久 | 奇米av| 国内美女人妻一级毛片免费看 | 国产一区二区三区不卡在线观看 | 成人在线一级片 | 中文字幕视频在线 | 久久久免费电影 | 欧美一区免费 | 91小视频| a免费网站| 日韩精品在线观看中文字幕 | 做a视频免费观看 | 99视频网| 国产综合久久 | 日韩中文字幕在线免费观看 | 国产操片 | 深夜av在线 | 国产一区二区三区在线免费 | 亚洲一区二区三 | 中文字幕视频在线 | 在线欧美亚洲 | 婷婷色视频 | 欧洲精品在线视频 |