正則表示式中的貪婪匹配——python學習筆記
阿新 • • 發佈:2019-01-06
貪婪匹配
1.1 概念
正則匹配預設是貪婪匹配,也就是匹配儘可能多的字元。舉例如下,匹配出數字後面的0;以下例子是用python寫的,但是貪婪匹配的概念在其他語言中是一致的。
import re
result = re.match(r'^(\d+)(0*)$', '102300').groups()
('102300', '')
print(result)
#result
#('102300', '')
# 正則表示式中我分了兩組,第一組是"\d",第二組是"(0)",返回結果顯示"\d"匹配了"102300","0"匹配為空。
由於\d+採用貪婪匹配,直接把後面的0全部匹配了,結果0*只能匹配空字串了。
這就是正則預設的貪婪匹配。
1.2 解決貪婪匹配
想要讓 “\d+” 採用非貪婪匹配(也就是儘可能少匹配),才能把後面的0匹配出來,解決辦法是在 “\d+” 加個 “?”,就可以讓 “\d+” 採用非貪婪匹配。
import re
result = re.match(r'^(\d+?)(0*)$', '102300').groups()
('102300', '')
print(result)
# 結果
#('1023', '00')
希望能夠幫助到大家,有什麼問題可以 直接評論即可,我會及時回覆的。