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

发布于 2021-02-02 23:19:03

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

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

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

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

关注者
0
被浏览
105
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你为什么不尝试

    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>
    >>> 
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看