0

说我想匹配:

r'(?P<as>a+)'

如何仅使用正则表达式语法忽略大括号之间的所有匹配项:

"{aabaa} a" #I just want the last 'a' matched
4

2 回答 2

0

正则表达式对于匹配并不是真正的最佳选择。但是您可以使用以下技巧:

a+(?![^{}]*})

但如果有不平衡,这将不起作用{}

于 2013-07-25T01:12:17.373 回答
0

一种选择可能是在运行正则表达式之前删除大括号内的内容。

>>> pat = r'(?P<as>a+)'
>>> string = "{aabaa} a"
>>> m = re.search(pat, re.sub(r'\{.*?\}', '', string))
>>> m.group('as')
'a'
于 2013-07-25T05:59:16.343 回答