87 正則的貪婪匹配和惰性匹配

2021-09-02 07:42:45 字數 567 閱讀 6197

正則的貪婪和惰性

我們舉個例子

我們來一段**

func main()

執行結果是

[[abc acc bbc acc adc bc acc bbc acc ad]]

我們第一眼看過去會有點蒙蔽

怎麼會出現這樣的結果

我們把結果分成兩個部分看

1.abc acc bbc acc adc 也就是原來的str

2.bc acc bbc acc ad 這是a和c中間的字串

所以我們可以發現

這裡的.+匹配了a和c中所有的字串

所以.+預設是貪婪匹配

貪婪匹配的意思就是a和c之間,越多越好

我們來修改一下**

func main()

再看一下結果

[[abc b] [acc c] [acc c] [adc d]]

這次我們是找到了4個結果

然後.+匹配的是a和c中間那個字母

這就是惰性匹配

這就是貪婪匹配和惰性匹配的區別

你學會了嗎

正則中的「貪婪匹配」和「懶惰匹配」

進行正則匹配時,像 以及 m,n 這幾種量詞 匹配數量 預設是屬於貪婪量詞,會進行貪婪匹配。什麼叫做貪婪匹配呢?貪婪就是盡可能的多匹配,貪心的意思。比如現在目標字串是 aaaa 四個a組成的字串 a 和 a 都會匹配 aaaa a?則會匹配 a 這就是貪婪匹配,實際運用中,有的時候我們卻希望盡可能少...

貪婪匹配和非貪婪匹配

貪婪模式 在整個表示式匹配成功的前提下,盡可能多的匹配 非貪婪模式 在整個表示式匹配成功的前提下,盡可能少的匹配 重複匹配0次或1次 重複匹配0次或更多次 重複匹配1次或更多次 預設情況下是貪婪的!content abbbbc pattern re.compile r ab result patte...

正則 貪婪匹配 最大匹配 和最小匹配的問題。

貪婪匹配 最大匹配 和最小匹配的問題。在抓取鏈結位址時,使用以下正則時發現,當在鏈結標題 鏈結標題中含有html 時,不能抓取到位址。href s i 尚若換成以下方式 href s i 則不能抓取到你需要的鏈結資料,預設情況下,perl使用的是貪婪匹配模式,也就是盡可能多的匹配資料。如 下面的指令...