我有以下几种模式:
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
。
我是否犯了一个明显的错误,这里有什么问题?
感谢任何帮助: 三江源
答案 0 :(得分:0)
是的@melpomeme,感谢非贪婪的澄清。搬了?紧跟在*限定符之后而不是在group()之后。现在它有效,谢谢