在尝试学习更多有关正则表达式的知识时,一个教程建议你可以使用\b来匹配单词边界。但是,Python解释器中的以下代码片段无法按预期工作:
\
>>> x = 'one two three' >>> y = re.search("\btwo\b", x)
如果有任何匹配项,它应该是一个匹配对象,但它是None。
None
\bpython不支持该表达式吗?还是我使用错误?
\bpython
你为什么不尝试
word = 'two' re.compile(r'\b%s\b' % word, re.I)
输出:
>>> word = 'two' >>> k = re.compile(r'\b%s\b' % word, re.I) >>> x = 'one two three' >>> y = k.search( x) >>> y <_sre.SRE_Match object at 0x100418850>
还忘了提及,你应该在代码中使用原始字符串
>>> x = 'one two three' >>> y = re.search(r"\btwo\b", x) >>> y <_sre.SRE_Match object at 0x100418a58> >>>