一尘不染

Python-re模块中的正则表达式是否支持单词边界(\ b)?

python

在尝试学习更多有关正则表达式的知识时,一个教程建议你可以使用\b来匹配单词边界。但是,Python解释器中的以下代码片段无法按预期工作:

>>> x = 'one two three'
>>> y = re.search("\btwo\b", x)

如果有任何匹配项,它应该是一个匹配对象,但它是None

\bpython不支持该表达式吗?还是我使用错误?


阅读 654

收藏
2020-02-15

共1个答案

一尘不染

你为什么不尝试

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>
>>> 
2020-02-15