貪婪匹配和非貪婪匹配

2021-09-24 09:29:25 字數 876 閱讀 1556

貪婪模式:在整個表示式匹配成功的前提下,盡可能多的匹配 ( * );

非貪婪模式:在整個表示式匹配成功的前提下,盡可能少的匹配 ( ? );

?重複匹配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...