激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

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

香港云服务器
服務器之家 - 腳本之家 - Python - Python3正則表達式之:(?(id/name)yes-pattern|no-pattern)條件性匹配

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

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

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

1. 用途

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

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

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

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

2. 參數含義

此處的name或id,是針對(當前位置的)條件性匹配之前的,某個已經通過group去分組的內容

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

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

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

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

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

3. 語法

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

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

實例:

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

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

4. 用法詳解

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

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

執行:

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

整體規則匹配失敗,返回為空,no-pattern部分并沒有按照預想執行。

 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會被認為匹配不成功,繼續執行no-pattern部分匹配

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

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

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

5.結論

1. 通過4.1 4.2  4.3 對比可以發現:

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

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

更多關于Python3正則表達式的相關教程請查看下面的相關鏈接

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

延伸 · 閱讀

精彩推薦
1113
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 亚洲电影免费观看国语版 | 亚洲最新无码中文字幕久久 | 久久久久久久免费视频 | 一级毛片免费在线 | 欧美a在线播放 | 久久久久久久九九九九 | 日本一级淫片1000部 | 911精品影院在线观看 | 午夜精品久久久久久毛片 | 欧美成人精品一级 | 黄色大片在线免费看 | 日本一道aⅴ不卡免费播放 日日草夜夜操 | 亚洲国产资源 | 91短视频版高清在线观看www | 免费在线人擦 | 色播视频网站 | 7777网站| 久久精品79国产精品 | 毛片免费试看 | 老师你怎么会在这第2季出现 | 国产精品视频免费网站 | 日韩一级免费毛片 | 色网站在线免费观看 | 视频一区二区三区中文字幕 | 激情视频导航 | 1314成人网| 亚洲国产精品一区二区三区 | 香蕉视频h | 国产精品99久久久久久久女警 | 国产欧美在线观看不卡一 | 操碰视频在线观看 | 久久久久久久亚洲视频 | 黄污网址 | 日韩黄色片网站 | 中文字幕在线免费观看电影 | 亚洲免费看片网站 | 少妇淫片免费一级毛片 | 黄色免费不卡视频 | 黄色毛片一级视频 | 久久视讯| 偷偷草网站|