在尝试学习更多关于正则表达式的知识时,有一篇教程建议您可以使用\b
来匹配单词边界。但是,Python解释器中的以下代码片段无法按预期工作:
>>> x = 'one two three'
>>> y = re.search("\btwo\b", x)
如果匹配了任何内容,它应该是一个match对象,但它是None
。
是\b
表达式在Python中不受支持,还是我用错了?
发布于 2010-10-22 16:24:58
你在你的代码中should be using raw strings
>>> x = 'one two three'
>>> y = re.search(r"\btwo\b", x)
>>> y
<_sre.SRE_Match object at 0x100418a58>
>>>
还有,你为什么不试试
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>
发布于 2010-10-22 16:49:33
这将会起作用:re.search(r"\btwo\b", x)
在Python语言中编写"\b"
时,只有一个字符:"\x08"
。可以像这样转义反斜杠:
"\\b"
或者像这样编写一个原始字符串:
r"\b"
https://stackoverflow.com/questions/3995034
复制相似问题