91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python最短匹配模式的用法

發布時間:2020-07-30 10:15:04 來源:億速云 閱讀:152 作者:小豬 欄目:開發技術

這篇文章主要講解了Python最短匹配模式的用法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

問題

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

解決方案

這個問題一般出現在需要匹配一對分隔符之間的文本的時候(比如引號包含的字符串)。 為了說明清楚,考慮如下的例子:

>>> 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.']
>>>

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

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

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

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

看完上述內容,是不是對Python最短匹配模式的用法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长兴县| 庆城县| 大理市| 建湖县| 盐城市| 外汇| 云南省| 开阳县| 桃源县| 民权县| 正定县| 象山县| 雅江县| 邳州市| 江华| 灵宝市| 泗阳县| 天等县| 岢岚县| 济阳县| 洛南县| 宝坻区| 玉林市| 广南县| 湾仔区| 基隆市| 祥云县| 怀安县| 万州区| 五河县| 休宁县| 西乌珠穆沁旗| 读书| 沾益县| 凤凰县| 德安县| 拜城县| 湘乡市| 维西| 清远市| 山西省|