如何在花括号之间不匹配?

时间:2013-07-24 23:50:23

标签: python regex match

说我想匹配:

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

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

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

2 个答案:

答案 0 :(得分:0)

正则表达式不适合匹配。但你可以使用像:

这样的技巧
a+(?![^{}]*})

但如果存在不平衡{},则无法使用。

答案 1 :(得分:0)

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

>>> pat = r'(?P<as>a+)'
>>> string = "{aabaa} a"
>>> m = re.search(pat, re.sub(r'\{.*?\}', '', string))
>>> m.group('as')
'a'