Python 3.4 - 匹配最内层大括号的正则表达式
Python 3.4 - Regular Expressions For Matching Innermost curly brackets
我正在尝试编写一个 Python 正则表达式来匹配最里面的大括号,即大括号可以包含除另一对大括号之外的任意数量的字符。例如,我想要以下代码:
re.findall(r'\{.*^\{.*^\}.*\}',"aaa.bbb{ccc.ddd{eee.fff}ggg.hhh}")
至return以下内容:
['{eee.fff}']
但目前我只得到一个 'no match':
[]
正则表达式的意思是——根据我目前对正则表达式的理解——“匹配以左大括号开头、后跟任意数量的字符、无左括号、后跟任意数字的任何模式字符数,后跟无右括号,后跟任意数量的字符,后跟右括号。
知道如何 improve/correct 上面的正则表达式吗?
而是使用 [^{}]+
来匹配一个或多个不是大括号的字符:
>>> re.findall(r'\{[^{}]+\}', "aaa.bbb{ccc.ddd{eee.fff}ggg.hhh}")
['{eee.fff}']
我正在尝试编写一个 Python 正则表达式来匹配最里面的大括号,即大括号可以包含除另一对大括号之外的任意数量的字符。例如,我想要以下代码:
re.findall(r'\{.*^\{.*^\}.*\}',"aaa.bbb{ccc.ddd{eee.fff}ggg.hhh}")
至return以下内容:
['{eee.fff}']
但目前我只得到一个 'no match':
[]
正则表达式的意思是——根据我目前对正则表达式的理解——“匹配以左大括号开头、后跟任意数量的字符、无左括号、后跟任意数字的任何模式字符数,后跟无右括号,后跟任意数量的字符,后跟右括号。
知道如何 improve/correct 上面的正则表达式吗?
而是使用 [^{}]+
来匹配一个或多个不是大括号的字符:
>>> re.findall(r'\{[^{}]+\}', "aaa.bbb{ccc.ddd{eee.fff}ggg.hhh}")
['{eee.fff}']