代码之家  ›  专栏  ›  技术社区  ›  D.C.

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

  •  84
  • D.C.  · 技术社区  · 14 年前

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

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

    如果有匹配的对象,它应该是匹配对象,但它是 None .

    \b 表达式在python中不受支持,还是我用错了?

    4 回复  |  直到 6 年前
        1
  •  71
  •   pyfunc    14 年前

    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>
    >>> 
    
        2
  •  72
  •   Bolo    14 年前

    re.search(r"\btwo\b", x)

    "\b" "\x08"

    "\\b"
    

    r"\b"
    
        4
  •  8
  •   Bill the Lizard Alexis MP    6 年前

    re.search("\btwo\b", x) \b

    print("foo\bbar")
    fobar
    

    "\btwo\b" two x = 'one two three'

    re.search compile "\\btwo\\b" r"\btwo\b"