Python 3.4 - 用于匹配的正则表达式最内侧的花括号

时间:2016-02-11 02:48:33

标签: python regex python-3.x curly-brackets

我正在尝试编写一个Python正则表达式来匹配最里面的大括号,即大括号,它可以包含除另一对大括号之外的任意数量的字符。举个例子,我想要以下代码:

re.findall(r'\{.*^\{.*^\}.*\}',"aaa.bbb{ccc.ddd{eee.fff}ggg.hhh}")

返回以下内容:

['{eee.fff}']

但目前我只得到一场“不匹配”,

[]

正则表达式意味着 - 从我到目前为止对正则表达式的理解 - "匹配任何以开头花括号开头的模式,后跟任意数量的字符,后跟没有开括号,后跟任何字符数,后跟没有右括号,后跟任意数量的字符,后跟一个右括号。

知道如何改进/纠正上述正则表达式吗?

1 个答案:

答案 0 :(得分:1)

而是使用[^{}]+匹配一个或多个非大括号的字符:

>>> re.findall(r'\{[^{}]+\}', "aaa.bbb{ccc.ddd{eee.fff}ggg.hhh}")
['{eee.fff}']