Skip to main content
 首页 » 编程设计

python之提取方括号之间的值,忽略单引号

2025年05月04日25lori

我正在尝试以下操作:

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

这是我的功能:

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

但我正在获得:

['123', "'text'"] 

我要获取:

['123', 'text']  

如何忽略单引号?

请您参考如下方法:

您可以使用 ? 将 ' 设为可选

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

  • \['? 匹配 [ 或 ['。

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

  • '?\] 匹配 ] 或 ']