Python文檔爲findall()
和finditer()
狀態:爲什麼Python findall()和finditer()在未錨定的*搜索中返回空匹配項?
空匹配被包括在結果,除非他們觸摸 開始另一個匹配
這可以證明爲如下:
In [20]: [m.span() for m in re.finditer('.*', 'test')]
Out[20]: [(0, 4), (4, 4)]
有誰能告訴我,爲什麼這個模式首先返回空匹配? .*
是否應該消耗整個字符串並返回單個匹配?此外,如果我將模式錨定到字符串的開頭,爲什麼最後沒有空的匹配?例如
In [22]: [m.span() for m in re.finditer('^.*', 'test')]
Out[22]: [(0, 4)]
初始錨定模式如何能匹配最後的東西? – 2014-09-03 15:57:48
這是一個公平點。 – Vortura 2014-09-03 16:56:28