在尝试学习更多有关正则表达式的内容时,教程建议您可以使用它\b
来匹配单词边界。但是,Python解释器中的以下代码段无法按预期工作:
>>> x = 'one two three'
>>> y = re.search("\btwo\b", x)
它应该是一个匹配对象,如果匹配任何东西,但它是None
。
是\b
不是在Python支持或我用错了?
发布于 2019-03-01 16:29:35
这将有效: re.search(r"\btwo\b", x)
当你用"\b"
Python 编写时,它是一个单个字符:"\x08"
。要么像这样逃避反斜杠:
"\\b"
或写一个像这样的原始字符串:
r"\b"
发布于 2019-03-01 16:55:47
你为什么不试试
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>
>>>
https://stackoverflow.com/questions/-100006406
复制相似问题