亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

python中re模塊匹配貪婪和非貪婪模式的示例分析

發布時間:2021-06-10 11:30:09 來源:億速云 閱讀:231 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關python中re模塊匹配貪婪和非貪婪模式的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

python貪婪和非貪婪

正則表達式通常用于在文本中查找匹配的字符串。Python里數量詞默認是貪婪的(在少數語言里也可能是默認非貪婪),總是嘗試匹配盡可能多的字符;非貪婪則相反,總是嘗試匹配盡可能少的字符。在"*","?","+","{m,n}"后面加上?,使貪婪變成非貪婪。

>>> s="This is a number 234-235-22-423"
>>> r=re.match(".+(\d+-\d+-\d+-\d+)",s)
>>> r.group(1)
'4-235-22-423'
>>> r=re.match(".+?(\d+-\d+-\d+-\d+)",s)
>>> r.group(1)
'234-235-22-423'
>>>

正則表達式模式中使用到通配字,那它在從左到右的順序求值時,會盡量“抓取”滿足匹配最長字符串,在我們上面的例子里面,“.+”會從字符 串的啟始處抓取滿足模式的最長字符,其中包括我們想得到的第一個整型字段的中的大部分,“\d+”只需一位字符就可以匹配,所以它匹配了數字“4”,而“.+”則匹配了從字符串起始到這個第一位數字4之前的所有字符。

解決方式:非貪婪操作符“?”,這個操作符可以用在"*","+","?"的后面,要求正則匹配的越少越好。

下面這個例子仔細體會下

>>> re.match(r"aa(\d+)","aa2343ddd").group(1)
'2343'
>>> re.match(r"aa(\d+?)","aa2343ddd").group(1)
'2'
>>> re.match(r"aa(\d+)ddd","aa2343ddd").group(1) 
'2343'
>>> re.match(r"aa(\d+?)ddd","aa2343ddd").group(1)
'2343'
>>>

關于“python中re模塊匹配貪婪和非貪婪模式的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

石嘴山市| 阜新| 纳雍县| 墨竹工卡县| 深水埗区| 石棉县| 罗城| 潼关县| 临沭县| 额敏县| 双牌县| 洪洞县| 雅安市| 故城县| 梨树县| 崇仁县| 元阳县| 宽城| 五寨县| 巨野县| 广南县| 栾城县| 乾安县| 镇江市| 白山市| 托克托县| 鄂托克前旗| 乐清市| 简阳市| 南召县| 东海县| 扬州市| 射洪县| 高青县| 隆德县| 巴东县| 东港市| 鹤山市| 东乡| 太仆寺旗| 丹江口市|