首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >来自re模块的Python正则表达式是否支持单词边界(\ b)?

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

Stack Overflow用户
提问于 2019-03-01 07:43:50
回答 2查看 0关注 0票数 0

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

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

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

\b不是在Python支持或我用错了?

EN

回答 2

Stack Overflow用户

发布于 2019-03-01 16:29:35

这将有效: re.search(r"\btwo\b", x)

当你用"\b"Python 编写时,它是一个单个字符:"\x08"。要么像这样逃避反斜杠:

"\\b"

或写一个像这样的原始字符串:

r"\b"
票数 0
EN

Stack Overflow用户

发布于 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>
>>> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档