【发布时间】:2015-07-11 13:02:39
【问题描述】:
我试图理解python中的非贪婪正则表达式,但我不明白为什么下面的例子有这个结果:
print(re.search('a??b','aaab').group())
ab
print(re.search('a*?b','aaab').group())
aaab
我认为第一个是“b”,第二个是“ab”。 谁能解释一下?
【问题讨论】:
-
原因是正则表达式引擎从左到右解析字符串,并在最左边的位置返回第一个可能的匹配项。您使用非贪婪量词这一事实不会改变任何事情。
标签: python regex non-greedy