假設我們有一個字符串1abcd1efg1hjk1lmn1
並且想要找到1
-s之間的東西。我們做的是不懂延遲正則表達式
re.findall('1.*?1','1abcd1efg1hjk1lmn1')
,並得到兩個結果
['1abcd1', '1hjk1']
好,我明白了。但如果我們這樣做
re.findall('1.*?1hj','1abcd1efg1hjk1lmn1')
爲什麼它抓住兩個間隔1
而不是一個?爲什麼我們得到['1abcd1efg1hj']
而不是['1efg1hj']
?這不是懶惰應該做的嗎?
https://regex101.com/r/vD6xF7/2點擊'正則表達式debugger',看看到底發生了什麼 – hjpotter92 2014-12-07 15:08:52
正則表達式引擎從左向右解析字符串,並始終給出最左邊的結果,無論使用何種量詞。 – 2014-12-07 16:22:49