我正在尝试以下方法:
s = "Text text text [123] ['text']"
这是我的功能:
def getFromSquareBrackets(s):
m = re.findall(r"\[([A-Za-z0-9_']+)\]", s)
return m
但我得到了:
['123', "'text'"]
我想获得:
['123', 'text']
如何忽略单引号?
答案 0 :(得分:3)
您可以使用'
作为
?
成为可选项
>>> re.findall(r"\['?([^'\]]+)'?\]", s)
['123', 'text']
\['?
匹配[
或['
。
([^'\]]+)
匹配'
或]
以外的任何内容并将其捕获。
'?\]
匹配]
或']
答案 1 :(得分:2)
使'
可选并且在捕获组之外
m = re.findall(r"\['?([A-Za-z0-9_]+)'?\]", s)