欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python正則表達(dá)式的懶惰匹配和貪婪匹配說(shuō)明

 更新時(shí)間:2020年07月13日 10:44:33   作者:Shine_on_the_earth  
這篇文章主要介紹了python正則表達(dá)式的懶惰匹配和貪婪匹配說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

第一次碰到這個(gè)問(wèn)題的時(shí)候,確實(shí)不知道該怎么辦,后來(lái)請(qǐng)教了一個(gè)大神,加上自己的理解,才了解是什么意思,這個(gè)東西寫(xiě)python的會(huì)經(jīng)常用到,而且會(huì)特別頻繁,在此寫(xiě)一篇博客,希望可以幫到一些朋友。

例:一個(gè)字符串 “abcdacsdnd”

①懶惰匹配

regex = "a.*?d"

②貪婪匹配

regex = "a.*d"

測(cè)試代碼:

# coding=UTF-8
import re

str = "abcdacsdn"
print("原始字符串 " + str)

# 懶惰匹配
regexL = "a.*?d"
print("懶惰匹配 = " + regexL)
regL = re.compile(regexL)
listL = re.findall(regL, str)
print("懶惰匹配結(jié)果")
print(listL)

# 貪婪匹配
regexT = "a.*d"
print("貪婪匹配 = " + regexT)
regT = re.compile(regexT)
listT = re.findall(regT, str)
print("貪婪匹配結(jié)果")
print(listT)

測(cè)試結(jié)果:

結(jié)果分析:

懶惰匹配,匹配成功兩次,一次abcd,一次acsd,匹配到滿(mǎn)足條件的abcd就停止了此次匹配,不會(huì)干擾后面的繼續(xù)匹配。

貪婪匹配,匹配成功一次,只有abcdacsd,匹配到字符串后,會(huì)最大限度的占用字符串

以上兩種,一個(gè)是盡量匹配最短串,一個(gè)是匹配最長(zhǎng)串。

補(bǔ)充知識(shí):python正則匹配中貪婪匹配效率比較

用例回歸完成之后,一般都要生成一個(gè)summary_report.但是,發(fā)現(xiàn)生成報(bào)告的時(shí)間耗時(shí)很久,搜集資料發(fā)現(xiàn)與匹配文件內(nèi)容使用的正則表達(dá)式有很大關(guān)系.

1.匹配模式說(shuō)明

下圖中圈住的部分,沒(méi)有注釋掉的使用貪婪匹配,注釋掉的使用非貪婪匹配

執(zhí)行時(shí)間上二者差別巨大;另外執(zhí)行時(shí)間與正則表達(dá)式的長(zhǎng)度也有關(guān)系,較長(zhǎng)的表達(dá)式建議分段匹配.

2.貪婪匹配時(shí)間

3.非貪婪匹配時(shí)間

以上這篇python正則表達(dá)式的懶惰匹配和貪婪匹配說(shuō)明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于Python的socket庫(kù)實(shí)現(xiàn)通信功能的示例代碼

    基于Python的socket庫(kù)實(shí)現(xiàn)通信功能的示例代碼

    本文主要給大家介紹了如何使用python的socket庫(kù)實(shí)現(xiàn)通信功能,這里簡(jiǎn)單的給每個(gè)客戶(hù)端增加一個(gè)不重復(fù)的uid,客戶(hù)端之間可以根據(jù)這個(gè)uid選擇進(jìn)行廣播通信,感興趣的小伙伴快來(lái)看看吧
    2023-08-08
  • Python時(shí)間操作之pytz模塊使用詳解

    Python時(shí)間操作之pytz模塊使用詳解

    在學(xué)習(xí)Python過(guò)程中,我們已經(jīng)了解了一些關(guān)于時(shí)間操作的庫(kù),如:Python內(nèi)置庫(kù):time,datatime和第三方庫(kù):dateutil,pytz等。本文將詳細(xì)講講pytz模塊的使用,需要的可以參考一下
    2022-06-06
  • Python集成C#實(shí)現(xiàn)界面操作下載文件功能的全過(guò)程

    Python集成C#實(shí)現(xiàn)界面操作下載文件功能的全過(guò)程

    使用腳本進(jìn)行下載的需求很常見(jiàn),下面這篇文章主要給大家介紹了關(guān)于Python集成C#實(shí)現(xiàn)界面操作下載文件功能的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • 利用python來(lái)跟蹤ip地址的方法

    利用python來(lái)跟蹤ip地址的方法

    今天來(lái)介紹一個(gè)流行的 python庫(kù) ip2geotools,使用它可以確定 IP地址 對(duì)應(yīng)的 國(guó)家、地區(qū)、城市、緯度和經(jīng)度等,文中通過(guò)代碼示例介紹了如何使用python來(lái)跟蹤ip地址,需要的朋友可以參考下
    2023-06-06
  • Python 轉(zhuǎn)換RGB顏色值的示例代碼

    Python 轉(zhuǎn)換RGB顏色值的示例代碼

    這篇文章主要介紹了Python 轉(zhuǎn)換RGB顏色值的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python文件打開(kāi)方式實(shí)例詳解【a、a+、r+、w+區(qū)別】

    Python文件打開(kāi)方式實(shí)例詳解【a、a+、r+、w+區(qū)別】

    這篇文章主要介紹了Python文件打開(kāi)方式,結(jié)合實(shí)例形式詳細(xì)分析了Python文件打開(kāi)函數(shù)的使用及a、a+、r+、w+等屬性功能、使用區(qū)別與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-03-03
  • Python入門(mén)之面向?qū)ο蠛皖?lèi)

    Python入門(mén)之面向?qū)ο蠛皖?lèi)

    這篇文章主要為大家介紹了Python面向?qū)ο蠛皖?lèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python數(shù)據(jù)處理的三個(gè)實(shí)用技巧分享

    Python數(shù)據(jù)處理的三個(gè)實(shí)用技巧分享

    數(shù)據(jù)處理無(wú)所不在,掌握常用技巧,事半功倍。這篇文章將使用Pandas開(kāi)展數(shù)據(jù)處理分析,總結(jié)其中常用、好用的數(shù)據(jù)分析技巧,感興趣的可以學(xué)習(xí)一下
    2022-04-04
  • Python 給某個(gè)文件名添加時(shí)間戳的方法

    Python 給某個(gè)文件名添加時(shí)間戳的方法

    今天小編就為大家分享一篇Python 給某個(gè)文件名添加時(shí)間戳的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • django使用圖片延時(shí)加載引起后臺(tái)404錯(cuò)誤

    django使用圖片延時(shí)加載引起后臺(tái)404錯(cuò)誤

    本文給大家介紹的是作者在Django中使用圖片的延時(shí)加載技術(shù)后引起后臺(tái)404錯(cuò)誤的問(wèn)題以及解決思路和方法,有需要的小伙伴可以參考下
    2017-04-04

最新評(píng)論