【问题标题】:Extract values between square brackets ignoring single quotes忽略单引号提取方括号之间的值
【发布时间】:2016-09-20 18:54:26
【问题描述】:

我正在尝试以下方法:

s = "Text text text [123] ['text']"

这是我的功能:

def getFromSquareBrackets(s):
    m = re.findall(r"\[([A-Za-z0-9_']+)\]", s)
    return m

但我得到:

['123', "'text'"]

我要获取:

['123', 'text'] 

如何忽略单引号?

【问题讨论】:

    标签: python regex


    【解决方案1】:

    您可以使用?' 设为可选

    >>> re.findall(r"\['?([^'\]]+)'?\]", s)
    ['123', 'text']
    

    • \['? 匹配 [['

    • ([^'\]]+) 匹配除'] 以外的任何内容并捕获它们。

    • '?\] 匹配 ]']

    【讨论】:

      【解决方案2】:

      ' 设为可选并且在捕获组之外

      m = re.findall(r"\['?([A-Za-z0-9_]+)'?\]", s)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-05
        • 2011-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-04
        相关资源
        最近更新 更多