3
正常蟒蛇正則表達式匹配,我們使用正則表達式匹配由左到右的方向,我想知道的是有一些交換機可以在python向左向右匹配嗎? 或以任何其他語言有此功能的嵌入式有關從正確的方向
例如
abcd1_abcd2
如果給一個abcd
正則表達式,它匹配兩個abcd
,我想是把最後的比賽首先在反方向匹配
正常蟒蛇正則表達式匹配,我們使用正則表達式匹配由左到右的方向,我想知道的是有一些交換機可以在python向左向右匹配嗎? 或以任何其他語言有此功能的嵌入式有關從正確的方向
例如
abcd1_abcd2
如果給一個abcd
正則表達式,它匹配兩個abcd
,我想是把最後的比賽首先在反方向匹配
可以撤消列表所建議的@ SilentGhost:
import re
for s in reversed(re.findall('abcd.', 'abcd1_abcd2')):
print s
事實上,我需要使用finditer,但它是一個yield表達式,所以我使用[在finditer(obj)] [:: - ]中進行匹配 – mlzboy 2010-10-17 16:11:35
什麼開關和什麼在*通常*? – 2010-10-17 12:17:32
什麼阻止你扭轉結果列表? – SilentGhost 2010-10-17 12:29:42
通常,您從右到左(至少在.NET中)匹配的原因是出於性能原因,而不是實際向後返回匹配列表。例如,如果你有一個非常複雜的表達式,可能導致大量的回溯,但是你的匹配以一個簡單的字符串'XYZ'結束,那麼解析器將通過向後工作並首先查找XYZ消除大量浪費的處理。 – 2013-07-17 11:09:09