正則的貪婪和惰性
我們舉個例子
我們來一段**
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使用的是貪婪匹配模式,也就是盡可能多的匹配資料。如 下面的指令...