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

Python 正則表達式的非捕獲組詳解

 更新時間:2025年02月21日 10:20:40   作者:qq_27390023  
非捕獲組 ((?:...)) 在 Python 正則表達式中用于分組但不保存匹配結果,通過 '?' 表示非捕獲標記,常用于簡化正則表達式和提高性能,它在選擇、提高匹配性能和結構化復雜表達式方面都有優(yōu)勢,本文介紹Python 正則表達式的非捕獲組的相關知識,感興趣的朋友一起看看吧

在 Python 正則表達式中,非捕獲組 ((?:...)) 是一種用于分組不保存匹配結果的結構。它與普通的捕獲組 (...) 語法類似,但在匹配時不會創(chuàng)建編號或命名的組,常用于簡化正則表達式和提高性能。

1. 語法

(?:pattern)
  • ?: 表示非捕獲標記。
  • pattern 是要匹配的正則表達式模式。

 2. 示例對比

普通捕獲組 ()

import re
text = "cat dog"
# 捕獲組
match = re.search(r"(cat) (dog)", text)
print(match.groups())  # ('cat', 'dog')
print(match.group(1))  # cat
print(match.group(2))  # dog

結果:groups() 返回所有捕獲的子組,group(1)、group(2) 通過編號訪問。

非捕獲組 (?:...)

import re
text = "cat dog"
# 非捕獲組
match = re.search(r"(?:cat) (?:dog)", text)
print(match.groups())  # ()
print(match.group(0))  # cat dog

結果:groups() 返回空元組,因為沒有捕獲的組。

 3. 主要應用場景

1?? 選擇(|)時減少復雜性

import re
text = "color colour"
# 捕獲組
matches = re.findall(r"(col(or|our))", text)
print(matches)  # [('color', 'or'), ('colour', 'our')]
# 非捕獲組
matches = re.findall(r"col(?:or|our)", text)
print(matches)  # ['color', 'colour']

優(yōu)勢(?:or|our) 僅用于匹配,不保存子組,結果更簡潔。

2?? 提高匹配性能

import re
import time
text = "ab" * 100000
# 捕獲組
start = time.time()
re.search(r"(ab)+", text)
print("捕獲組耗時:", time.time() - start)
# 非捕獲組
start = time.time()
re.search(r"(?:ab)+", text)
print("非捕獲組耗時:", time.time() - start)

優(yōu)勢:非捕獲組不保存匹配內(nèi)容,因此速度更快,內(nèi)存占用更少。

3?? 結構化復雜表達式

import re
text = "2024-02-19"
# 捕獲組
match = re.search(r"(\d{4})-(\d{2})-(\d{2})", text)
print(match.groups())  # ('2024', '02', '19')
# 非捕獲組
match = re.search(r"(?:\d{4})-(?:\d{2})-(?:\d{2})", text)
print(match.groups())  # ()

優(yōu)勢:結構清晰,無需保存中間匹配結果。

4. 捕獲組 vs. 非捕獲組對比

特性捕獲組 (pattern)非捕獲組 (?:pattern)
結果保存保存,group() 可訪問不保存,無 group() 結果
處理性能慢(需要保存匹配)快(無需保存匹配)
復雜性復雜,需管理組索引簡化,適用于邏輯分組
應用場景需要保存匹配時僅匹配不保存時

5. 結論

  • 需要子組內(nèi)容:使用普通捕獲組 (...),可通過 group(n) 獲取。
  • 僅控制結構:使用非捕獲組 (?:...),提高性能并簡化表達式。
  • 性能優(yōu)化:非捕獲組減少內(nèi)存消耗,適合大型文本處理。

到此這篇關于Python 正則表達式的非捕獲組介紹的文章就介紹到這了,更多相關Python 正則表達式非捕獲組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python學習-List移除某個值remove和統(tǒng)計值次數(shù)count

    python學習-List移除某個值remove和統(tǒng)計值次數(shù)count

    這篇文章主要介紹了?python學習-List移除某個值remove和統(tǒng)計值次數(shù)count,文章基于python的相關內(nèi)容展開詳細介紹,需要的小伙伴可以參考一下
    2022-04-04
  • pytorch模型預測結果與ndarray互轉(zhuǎn)方式

    pytorch模型預測結果與ndarray互轉(zhuǎn)方式

    今天小編就為大家分享一篇pytorch模型預測結果與ndarray互轉(zhuǎn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • scrapy中的spider傳參實現(xiàn)增量的方法

    scrapy中的spider傳參實現(xiàn)增量的方法

    有時候需要根據(jù)項目的實際需求向spider傳遞參數(shù)來控制spider的運行方式,本文主要介紹了scrapy中的spider傳參實現(xiàn)增量的方法,具有一定的參考價值,感興趣的可以了解一下
    2022-06-06
  • 如何利用python將一個py文件變成一個軟件詳解

    如何利用python將一個py文件變成一個軟件詳解

    在我們完成一個Python項目或一個程序時,希望將Python的py文件打包成在Windows系統(tǒng)下直接可以運行的exe程序,下面這篇文章主要給大家介紹了關于如何利用python將一個py文件變成一個軟件的相關資料,需要的朋友可以參考下
    2023-04-04
  • python 多線程串行和并行的實例

    python 多線程串行和并行的實例

    今天小編就為大家分享一篇python 多線程串行和并行的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 手把手教你實現(xiàn)Python連接數(shù)據(jù)庫并快速取數(shù)的工具

    手把手教你實現(xiàn)Python連接數(shù)據(jù)庫并快速取數(shù)的工具

    在數(shù)據(jù)生產(chǎn)應用部門,取數(shù)分析是一個很常見的需求,實際上業(yè)務人員需求時刻變化,最高效的方式是讓業(yè)務部門自己來取。本文就來手把手教大家搭建一個?Python?連接數(shù)據(jù)庫,快速取數(shù)工具,需要的可以參考一下
    2022-11-11
  • python計算兩點間距離的5種常用方法

    python計算兩點間距離的5種常用方法

    計算兩點距離在 Python 中有多種方法,本文介紹了在Python中計算兩點距離的5種常用方法,每種方法都有各自的適用場景和優(yōu)缺點,感興趣的小伙伴可以了解下
    2026-04-04
  • Python字典和集合的底層原來是這么玩的

    Python字典和集合的底層原來是這么玩的

    在Python算法競賽中,集合(set)和字典(dict)是兩個高頻使用的內(nèi)置數(shù)據(jù)結構,二者分工明確,這篇文章主要介紹了Python字典和集合底層的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2026-06-06
  • Python異步在非阻塞子進程中運行命令詳解

    Python異步在非阻塞子進程中運行命令詳解

    這篇文章主要為大家介紹了Python異步在非阻塞子進程中運行命令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Python實現(xiàn)字典去除重復的方法示例

    Python實現(xiàn)字典去除重復的方法示例

    這篇文章主要介紹了Python實現(xiàn)字典去除重復的方法,涉及Python字典遍歷、文件讀取、去除重復等相關操作技巧,需要的朋友可以參考下
    2017-07-07

最新評論

青河县| 东城区| 金寨县| 望奎县| 凤山县| 盖州市| 红河县| 革吉县| 垫江县| 湘西| 温宿县| 阿鲁科尔沁旗| 普陀区| 嘉兴市| 诸城市| 新蔡县| 竹溪县| 隆林| 平安县| 广灵县| 汽车| 历史| 白朗县| 遂溪县| 新建县| 鄂托克前旗| 巩义市| 镇康县| 兴义市| 宣城市| 新晃| 四会市| 江山市| 沽源县| 会东县| 兖州市| 旅游| 金沙县| 南昌市| 太保市| 韩城市|