正则表达式在括号内的方括号内的引号内匹配字母数字

时间:2016-10-20 05:23:05

标签: python regex

我正在尝试匹配以下项目中的字母数字值或字符串:

IMDB(["tt3107288"])

现在我试图逃避([,但我对如何使用此"逃脱感到遗憾:

'IMDB\(\[([^]]+)\]'

这会使用引号报告值"tt3107288" ...我知道我可以只替换引号,但只是为了匹配值会更有效。

2 个答案:

答案 0 :(得分:0)

执行:

"([^"]+)"

现在唯一捕获的组将是您想要的部分。

示例:

In [2]: s = 'IMDB(["tt3107288"])'

In [3]: re.search(r'"([^"]+)"', s).group(1)
Out[3]: 'tt3107288'

答案 1 :(得分:0)

括号和括号在正则表达式中具有特殊含义,因此您必须将它们转义。此外,您的表达式具有不平衡的括号。

>>> import re
>>> re.search(r'IMDB\(\["([^"]+)"\]\)', 'IMDB(["tt3107288"])').group(1)
'tt3107288'