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

詳解Python 最短匹配模式

 更新時(shí)間:2020年07月29日 17:21:20   作者:David Beazley  
這篇文章主要介紹了如何實(shí)現(xiàn)Python 最短匹配模式,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

問(wèn)題

你正在試著用正則表達(dá)式匹配某個(gè)文本模式,但是它找到的是模式的最長(zhǎng)可能匹配。 而你想修改它變成查找最短的可能匹配。

解決方案

這個(gè)問(wèn)題一般出現(xiàn)在需要匹配一對(duì)分隔符之間的文本的時(shí)候(比如引號(hào)包含的字符串)。 為了說(shuō)明清楚,考慮如下的例子:

>>> str_pat = re.compile(r'"(.*)"')
>>> text1 = 'Computer says "no."'
>>> str_pat.findall(text1)
['no.']
>>> text2 = 'Computer says "no." Phone says "yes."'
>>> str_pat.findall(text2)
['no." Phone says "yes.']
>>>

在這個(gè)例子中,模式 r'\"(.*)\"' 的意圖是匹配被雙引號(hào)包含的文本。 但是在正則表達(dá)式中*操作符是貪婪的,因此匹配操作會(huì)查找最長(zhǎng)的可能匹配。 于是在第二個(gè)例子中搜索 text2 的時(shí)候返回結(jié)果并不是我們想要的。

為了修正這個(gè)問(wèn)題,可以在模式中的*操作符后面加上?修飾符,就像這樣:

>>> str_pat = re.compile(r'"(.*?)"')
>>> str_pat.findall(text2)
['no.', 'yes.']
>>>

這樣就使得匹配變成非貪婪模式,從而得到最短的匹配,也就是我們想要的結(jié)果。

討論

這一節(jié)展示了在寫(xiě)包含點(diǎn)(.)字符的正則表達(dá)式的時(shí)候遇到的一些常見(jiàn)問(wèn)題。 在一個(gè)模式字符串中,點(diǎn)(.)匹配除了換行外的任何字符。 然而,如果你將點(diǎn)(.)號(hào)放在開(kāi)始與結(jié)束符(比如引號(hào))之間的時(shí)候,那么匹配操作會(huì)查找符合模式的最長(zhǎng)可能匹配。 這樣通常會(huì)導(dǎo)致很多中間的被開(kāi)始與結(jié)束符包含的文本被忽略掉,并最終被包含在匹配結(jié)果字符串中返回。 通過(guò)在 * 或者 + 這樣的操作符后面添加一個(gè) ? 可以強(qiáng)制匹配算法改成尋找最短的可能匹配。

以上就是詳解Python 最短匹配模式的詳細(xì)內(nèi)容,更多關(guān)于Python 最短匹配模式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python 實(shí)現(xiàn)使用空值進(jìn)行賦值 None

    Python 實(shí)現(xiàn)使用空值進(jìn)行賦值 None

    這篇文章主要介紹了Python 實(shí)現(xiàn)使用空值進(jìn)行賦值 None,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Python中Tkinter的面向?qū)ο缶幊虇?wèn)題與解決方案

    Python中Tkinter的面向?qū)ο缶幊虇?wèn)題與解決方案

    在Python的GUI開(kāi)發(fā)中,Tkinter是一個(gè)廣泛使用的標(biāo)準(zhǔn)庫(kù),結(jié)合面向?qū)ο缶幊痰乃枷?可以使Tkinter的代碼更加模塊化和易于維護(hù),然而,在實(shí)際應(yīng)用中,OOP與Tkinter的結(jié)合也會(huì)帶來(lái)一些常見(jiàn)的問(wèn)題,本文將通過(guò)具體的代碼案例,分析這些問(wèn)題,并提供相應(yīng)的解決方案
    2024-12-12
  • 學(xué)習(xí)python 的while循環(huán)嵌套

    學(xué)習(xí)python 的while循環(huán)嵌套

    這篇文章主要為大家介紹了python 的while循環(huán)嵌套,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • python圖形繪制奧運(yùn)五環(huán)實(shí)例講解

    python圖形繪制奧運(yùn)五環(huán)實(shí)例講解

    在本文里我們給大家整理了一篇關(guān)于python圖形繪制奧運(yùn)五環(huán)的實(shí)例內(nèi)容,大家可以跟著學(xué)習(xí)下。
    2019-09-09
  • Python中深淺拷貝的區(qū)別詳細(xì)分析

    Python中深淺拷貝的區(qū)別詳細(xì)分析

    深拷貝和淺拷貝都是對(duì)原對(duì)象的拷貝,都會(huì)生成一個(gè)看起來(lái)相同的對(duì)象,下面這篇文章主要給大家介紹了關(guān)于Python中深淺拷貝的區(qū)別的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 介紹Python中的文檔測(cè)試模塊

    介紹Python中的文檔測(cè)試模塊

    這篇文章主要介紹了Python中的文檔測(cè)試模塊,代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • python實(shí)現(xiàn)鬧鐘定時(shí)播放音樂(lè)功能

    python實(shí)現(xiàn)鬧鐘定時(shí)播放音樂(lè)功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)鬧鐘定時(shí)播放音樂(lè)功能,播放wav格式的音頻,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python爬取抖音視頻的實(shí)例分析

    python爬取抖音視頻的實(shí)例分析

    在本篇內(nèi)容里小編給大家整理一篇關(guān)于python爬取抖音視頻的實(shí)例分析的相關(guān)內(nèi)容,有興趣的朋友可以測(cè)試下實(shí)例內(nèi)容。
    2021-01-01
  • Python數(shù)據(jù)存儲(chǔ)之 h5py詳解

    Python數(shù)據(jù)存儲(chǔ)之 h5py詳解

    今天小編就為大家分享一篇Python數(shù)據(jù)存儲(chǔ)之 h5py詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python dir函數(shù)快速掌握用法技巧

    python dir函數(shù)快速掌握用法技巧

    在本篇文章里小編給大家整理的是一篇關(guān)于python dir函數(shù)快速掌握用法技巧,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-12-12

最新評(píng)論