【问题标题】:Python 3.4 - Regular Expressions For Matching Innermost curly bracketsPython 3.4 - 匹配最内层花括号的正则表达式
【发布时间】:2016-05-21 16:11:11
【问题描述】:

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

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

返回以下内容:

['{eee.fff}']

但目前我只得到一个“不匹配”:

[]

正则表达式的意思是——从我目前对正则表达式的理解来看——“匹配任何以大括号开头的模式,后跟任意数量的字符,后跟没有左括号,后跟任意数量的字符, 后跟无右括号,后跟任意数量的字符,后跟右括号。

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

【问题讨论】:

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


    【解决方案1】:

    改为使用[^{}]+ 匹配一个或多个不是花括号的字符:

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

    【讨论】:

    • 有什么简单的描述吗?
    • 知道了。基本上任何{..something..} 都没有{}
    猜你喜欢
    • 2016-05-22
    • 2011-07-18
    • 1970-01-01
    • 2016-02-13
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多