最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年10月06日 15:33:27   投稿:wdc  
(?(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)前位置的)條件性匹配之前的,某個已經(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,則前面要有個豎杠'|',用來分隔yes-patternno-pattern

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

實例:

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

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

4. 用法詳解

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

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

執(zhí)行:

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

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

 4.2 改一下匹配字符串

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

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

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

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

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

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

>>> re.search(r'(\d+)(?(1)\w+|jb51\.\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ī)則中的作為判斷條件的組本身不允許為空的時候,在該組對目標(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)鏈接

相關(guān)文章

  • LyScript實現(xiàn)Hook隱藏調(diào)試器的方法詳解

    LyScript實現(xiàn)Hook隱藏調(diào)試器的方法詳解

    LyScript?插件集成的內(nèi)置API函數(shù)可靈活的實現(xiàn)繞過各類反調(diào)試保護(hù)機(jī)制。本文將運(yùn)用LyScript實現(xiàn)繞過大多數(shù)通用調(diào)試機(jī)制,實現(xiàn)隱藏調(diào)試器的目的,需要的可以參考一下
    2022-09-09
  • numba提升python運(yùn)行速度的實例方法

    numba提升python運(yùn)行速度的實例方法

    在本篇文章里小編給大家整理的是一篇關(guān)于numba提升python運(yùn)行速度的實例方法,有興趣的朋友們可以參考下。
    2021-01-01
  • python url 參數(shù)修改方法

    python url 參數(shù)修改方法

    今天小編就為大家分享一篇python url 參數(shù)修改方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 自然語言處理NLP TextRNN實現(xiàn)情感分類

    自然語言處理NLP TextRNN實現(xiàn)情感分類

    這篇文章主要為大家介紹了自然語言處理NLP TextRNN實現(xiàn)情感分類示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • python?如何獲取文件夾中的全部文件

    python?如何獲取文件夾中的全部文件

    在神經(jīng)網(wǎng)絡(luò)準(zhǔn)備訓(xùn)練集的時候,經(jīng)常需要從文件夾中讀取全部圖片。經(jīng)常遇到的有兩種方式,一種是os.listdir()另一種是glob,本文結(jié)合示例代碼對python獲取文件夾中全部文件講解的非常詳細(xì),需要的朋友參考下吧
    2023-01-01
  • 使用python PIL庫批量對圖片添加水印的過程詳解

    使用python PIL庫批量對圖片添加水印的過程詳解

    平常我們想給某些圖片添加文字水印,方法有很多,也有很多的工具可以方便的進(jìn)行,今天主要是對PIL庫的應(yīng)用,結(jié)合Python語言批量對圖片添加水印,文章通過代碼示例給大家介紹的非常詳細(xì),感興趣的同學(xué)可以參考一下
    2023-11-11
  • 關(guān)于Pycharm配置翻譯插件Translation報錯更新TTK失敗不能使用的問題

    關(guān)于Pycharm配置翻譯插件Translation報錯更新TTK失敗不能使用的問題

    這篇文章主要介紹了關(guān)于Pycharm配置翻譯插件Translation報錯更新TTK失敗不能使用的問題,本文通過圖文并茂的形式給大家分享解決方案,需要的朋友可以參考下
    2022-04-04
  • 如何實現(xiàn)一個python函數(shù)裝飾器(Decorator)

    如何實現(xiàn)一個python函數(shù)裝飾器(Decorator)

    這篇文章主要介紹了如何實現(xiàn)一個python函數(shù)裝飾器(Decorator),幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-10-10
  • Python Requests爬蟲之求取關(guān)鍵詞頁面詳解

    Python Requests爬蟲之求取關(guān)鍵詞頁面詳解

    這篇文章主要為大家詳細(xì)介紹了Python Requests爬蟲之求取關(guān)鍵詞頁面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python中條件語句、循環(huán)語句和pass語句的使用示例

    Python中條件語句、循環(huán)語句和pass語句的使用示例

    Python條件語句是通過一條或多條語句的執(zhí)行結(jié)果(True或者False)來決定執(zhí)行的代碼塊,下面這篇文章主要給大家介紹了關(guān)于Python中條件語句、循環(huán)語句和pass語句使用的相關(guān)資料,需要的朋友可以參考下
    2022-06-06

最新評論

达日县| 浮山县| 盐山县| 宽城| 崇信县| 当涂县| 阿拉善盟| 阜新| 罗江县| 定南县| 阳新县| 孟津县| 大渡口区| 甘谷县| 响水县| 兖州市| 蒙城县| 万年县| 涞源县| 平塘县| 莱芜市| 定安县| 浙江省| 黄石市| 泊头市| 自治县| 新疆| 当涂县| 桂东县| 中方县| 建始县| 泸溪县| 梨树县| 泊头市| 资源县| 凤山县| 海兴县| 崇州市| 浦东新区| 岳普湖县| 县级市|