貪婪模式:在整個表示式匹配成功的前提下,盡可能多的匹配 ( * );
非貪婪模式:在整個表示式匹配成功的前提下,盡可能少的匹配 ( ? );
?重複匹配0次或1次
*重複匹配0次或更多次
+重複匹配1次或更多次
預設情況下是貪婪的!
content = 'abbbbc'
pattern = re.compile(r'ab*')
result = pattern.findall(content)
print(result)
輸出為:
pattern = re.compile(r'ab?')
result = pattern.findall(content)
print(result)
輸出為:
pattern = re.compile(r'ab*?')
result = pattern.findall(content)
print(result)
輸出為:
pattern = re.compile(r'ab+')
result = pattern.findall(content)
print(result)
輸出為:
pattern = re.compile(r'ab+?')
result = pattern.findall(content)
print(result)
輸出為: shell 中 貪婪匹配 和 非貪婪匹配
舉個栗子 1 2 v jfedu.shiyiwen.com echo 乙個 為非貪婪匹配,即匹配最短結果。從右到左進行非貪婪匹配,匹配什麼呢?匹配已 的字元。那麼當然是匹配到了.com 然後執行刪除匹配到的字元。結果就是 這裡的 相當於定界符。而 是萬用字元 jfedu.shiyiwen 1 ech...
python re模組匹配貪婪和非貪婪模式詳解
python貪婪和非貪婪 正規表示式通常用於在文字程式設計客棧中查詢proouv匹配的字串。python裡數量詞預設是貪婪的 在少數語言裡也可能是預設非貪婪 總是嘗試匹配盡可能多的字元 非貪婪則相反,總是嘗試匹配盡可能少的字元。在 後面加上?使貪婪變成非貪婪。s this is a number 2...
正則非貪婪匹配
string str 註冊商 xiamen ename network technology corporation limited dba ename corp,網域名稱伺服器 whois.ename.com,相關 dns 伺服器 ns1.ename.net,dns 伺服器 ns2.ename.n...