Python正则表达式错误,非gredy组意外行为

时间:2016-07-14 23:03:56

标签: python regex

我有以下几种模式:

patterns=['file.html', '../file','../file.html', 'file/', 'file']

我喜欢正则表达式,只匹配这些场景中的文件。 rgx = re.compile(r"^ #begin line (\.\./)? #1st group non-greedy (.*)? #2nd group non-greedy (\.html$)? #3rd group non-greedy $ #pattern end", re.VERBOSE)

问题在于第二组。它不是非贪婪的,总是吞噬.html

因此,m= rgx.match('file.html')的{​​{1}}输出为m.group(2),而不是所需的file.html

我是否犯了一个明显的错误,这里有什么问题?

感谢任何帮助: 三江源

1 个答案:

答案 0 :(得分:0)

是的@melpomeme,感谢非贪婪的澄清。搬了?紧跟在*限定符之后而​​不是在group()之后。现在它有效,谢谢