我很难弄清楚为什么这段代码没有生成匹配对象。我在 Centos 操作系统上运行 python 版本 2.6.6。
>>> x = r'\[GOOD\]'
>>> y = r'it made me feel \[GOOD\]'
>>> match = re.search(x, y)
>>> print match
None
我预期的输出将是一个匹配对象,如:
>>> match = re.search ('hi', 'hilllaos')
>>> print match
<_sre.SRE_Match object at 0x3299ac0>
有什么解释吗?
请您参考如下方法:
>>> x = r'\\\[GOOD\\\]'
>>> y = r'it made me feel \[GOOD\]'
>>> re.search(x, y)
<_sre.SRE_Match object at 0x8aa3d40>
\\\[ 第一个 \ 转义第二个(中间)斜线,最后一个斜线转义 [。
在正则表达式中仅使用 \[ 即可转义 [ 即 character class ,所以它不会匹配字符串 y 中的实际 \。
