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

python中正則表達(dá)式?: ?= ?! 的用法

 更新時(shí)間:2025年04月17日 10:24:57   作者:SmallerFL  
正則表達(dá)式中使用的??:、?=?和??!?是三種不同的正則表達(dá)式語法,它們分別代表非捕獲組、正向前瞻斷言和負(fù)向前瞻斷言,下面就來介紹一下這三種的方法,感興趣的可以了解一下

正則表達(dá)式中使用的 ?:?= 和 ?! 是三種不同的正則表達(dá)式語法,它們分別代表非捕獲組、正向前瞻斷言和負(fù)向前瞻斷言。

1. ?: 用法

(?:...) 是一種非捕獲組(non-capturing group)的語法。它用于將一部分正則表達(dá)式括在一起,但不將該部分作為單獨(dú)的捕獲組。這意味著即使匹配了這部分表達(dá)式,也不會(huì)在結(jié)果中創(chuàng)建新的捕獲組。

正則表達(dá)式中的捕獲組(capture group)是使用圓括號(hào) () 包圍的一部分表達(dá)式。這些捕獲組在匹配到的字符串中標(biāo)記了特定的部分,并將其保存起來以供稍后使用。

如果還不清楚什么是捕獲組,下面給一個(gè)例子就清楚了:

import re

pattern = r'a(.*)test'
text = 'This is a good test.'

match = re.search(pattern, text)
if match:
    print("Found word:", match.groups())
# 輸出
# Found word: (' good ',)

在這個(gè)示例中,(.*) 是一個(gè)捕獲組,用于將a 和 test 中間的字符提取出來。

知道了捕獲組,那么非捕獲組也能猜出來了。有時(shí)你可能只想將表達(dá)式括在一起,但不想保存匹配結(jié)果。在這種情況下,可以使用非捕獲組 (?: ...)

示例:

import re

pattern = r'(?:abc)def'
text = 'abcdef'

match = re.search(pattern, text)
if match:
    print("Match found")

在這個(gè)示例中,(?:abc) 是一個(gè)非捕獲組,它將 abc 與 def 組合在一起進(jìn)行匹配,但不會(huì)作為單獨(dú)的捕獲組。

2. ?= 用法

?= 是正向前瞻斷言(positive lookahead assertion)。它用于匹配某個(gè)子表達(dá)式后的位置,但不包含匹配到的子表達(dá)式在最終的結(jié)果中。前瞻斷言用來確保某一部分的匹配被后續(xù)某一部分的條件匹配。

示例:

import re

pattern = r'abc(?=def)'
text = '.x abcdef123'
text2 = '.x abc1def123'

match = re.search(pattern, text)
if match:
    print("Match found:", match.group())
# 輸出
# Match found: abc

match = re.search(pattern, text2)
if not match:
    print("Match not found")
# 輸出
# Match not found

在這個(gè)示例中,abc(?=def) 使用了正向前瞻斷言。它將匹配 abc 后面跟著 def 的部分。在 abcdef 中,它匹配了 abc,因?yàn)?nbsp;abc 后面是 def。

3. ?! 用法

?! 是負(fù)向前瞻斷言(negative lookahead assertion)。它用于確保某個(gè)子表達(dá)式不匹配之后的位置,而不包含匹配到的子表達(dá)式在最終的結(jié)果中。

用法示例:

import re

pattern = r'abc(?!def)'
text = 'abcxyz'
text2 = 'abcdef'

match = re.search(pattern, text)
if match:
    print("Match found:", match.group())
# 輸出
# Match found: abc

match = re.search(pattern, text2)
if not match:
    print("Match not found")
# 輸出
# Match not found

在這個(gè)示例中,abc(?!def) 使用了負(fù)向前瞻斷言。它將匹配 abc 后面不跟著 def 的部分。在 abcxyz 中,它匹配了 abc,因?yàn)?nbsp;abc 后面沒有 def。

4. 總結(jié)

  • (?:...) 是非捕獲組,不會(huì)捕獲組內(nèi)的匹配結(jié)果。
  • ?= 是正向前瞻斷言,確保匹配后的位置滿足條件。
  • ?! 是負(fù)向前瞻斷言,確保匹配后的位置不滿足條件。

到此這篇關(guān)于python中正則表達(dá)式?: ?= ?! 的用法的文章就介紹到這了,更多相關(guān)python中正則?: ?= ?! 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相 

相關(guān)文章

  • python庫umap有效地揭示高維數(shù)據(jù)的結(jié)構(gòu)和模式初探

    python庫umap有效地揭示高維數(shù)據(jù)的結(jié)構(gòu)和模式初探

    這篇文章主要介紹了python庫umap有效地揭示高維數(shù)據(jù)的結(jié)構(gòu)和模式初探,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python通過pyperclip庫操作剪貼板

    Python通過pyperclip庫操作剪貼板

    pyperclip是一個(gè)python庫用于操作剪貼板,可以非常方便地將文本復(fù)制到剪貼板或從剪貼板獲取文本,下面就跟隨小編一起了解一下pyperclip的具體使用吧
    2024-11-11
  • Python實(shí)現(xiàn)變量數(shù)值交換及判斷數(shù)組是否含有某個(gè)元素的方法

    Python實(shí)現(xiàn)變量數(shù)值交換及判斷數(shù)組是否含有某個(gè)元素的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)變量數(shù)值交換及判斷數(shù)組是否含有某個(gè)元素的方法,涉及Python字符串與數(shù)組的相關(guān)賦值、判斷操作技巧,需要的朋友可以參考下
    2017-09-09
  • Python+PyQt5開發(fā)一個(gè)智能鍵盤模擬輸入器(附整體源碼)

    Python+PyQt5開發(fā)一個(gè)智能鍵盤模擬輸入器(附整體源碼)

    在當(dāng)今數(shù)字化辦公時(shí)代,自動(dòng)化工具已經(jīng)成為提高工作效率的重要利器,今天我要向大家介紹一款基于PyQt5和pynput庫開發(fā)的智能鍵盤模擬輸入器,感興趣的小伙伴可以了解下
    2025-10-10
  • 安裝2019Pycharm最新版本的教程詳解

    安裝2019Pycharm最新版本的教程詳解

    這篇文章主要介紹了安裝2019Pycharm最新版本的教程詳解,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • YOLOv5改進(jìn)之添加SE注意力機(jī)制的詳細(xì)過程

    YOLOv5改進(jìn)之添加SE注意力機(jī)制的詳細(xì)過程

    作為當(dāng)前先進(jìn)的深度學(xué)習(xí)目標(biāo)檢測(cè)算法YOLOv5,已經(jīng)集合了大量的trick,但是還是有提高和改進(jìn)的空間,針對(duì)具體應(yīng)用場(chǎng)景下的檢測(cè)難點(diǎn),可以不同的改進(jìn)方法,下面這篇文章主要給大家介紹了關(guān)于YOLOv5改進(jìn)之添加SE注意力機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 深入探討Python進(jìn)行代碼重構(gòu)的詳細(xì)指南

    深入探討Python進(jìn)行代碼重構(gòu)的詳細(xì)指南

    代碼重構(gòu)是在不改變代碼外在行為的前提下,對(duì)代碼內(nèi)部結(jié)構(gòu)進(jìn)行改進(jìn)的過程,是軟件開發(fā)過程中的一項(xiàng)核心技能,下面小編就來和大家深入介紹一下代碼重構(gòu)吧
    2025-08-08
  • Pandas之read_csv()讀取文件跳過報(bào)錯(cuò)行的解決

    Pandas之read_csv()讀取文件跳過報(bào)錯(cuò)行的解決

    這篇文章主要介紹了Pandas之read_csv()讀取文件跳過報(bào)錯(cuò)行的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 基于pygame實(shí)現(xiàn)貪吃蛇小游戲示例

    基于pygame實(shí)現(xiàn)貪吃蛇小游戲示例

    大家好,本篇文章主要講的是基于pygame實(shí)現(xiàn)貪吃蛇小游戲示例,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 在PyTorch中自定義fit()函數(shù)中的操作代碼

    在PyTorch中自定義fit()函數(shù)中的操作代碼

    當(dāng)在進(jìn)行有監(jiān)督學(xué)習(xí)時(shí),我們可以使用fit()函數(shù)對(duì)模型進(jìn)行訓(xùn)練,通過迭代優(yōu)化模型的參數(shù),使其能夠更好地?cái)M合訓(xùn)練數(shù)據(jù),本文給大家介紹了在PyTorch中自定義fit()函數(shù)中的操作代碼,感興趣的同學(xué)可以跟著小編一起來看看
    2024-05-05

最新評(píng)論

明星| 渝中区| 凤阳县| 德钦县| 镇巴县| 屏东市| 肥城市| 卢龙县| 南通市| 涟源市| 绥阳县| 乌拉特中旗| 新安县| 合阳县| 克山县| 团风县| 恩平市| 信宜市| 江阴市| 黄龙县| 宜黄县| 盖州市| 隆尧县| 武夷山市| 南澳县| 武陟县| 深圳市| 临沂市| 多伦县| 松潘县| 丰城市| 三都| 镇江市| 左权县| 古浪县| 皋兰县| 临湘市| 巢湖市| 区。| 三亚市| 天全县|