【问题标题】:Why doesn't \b\w+\b match a word? [duplicate]为什么 \b\w+\b 不匹配一个单词? [复制]
【发布时间】:2014-03-07 00:31:27
【问题描述】:

为什么下面的 Python 语句会返回 None

>>> re.match('\b\w+\b', 'foo')
>>>

据我了解,这应该与 foo 这个词匹配。第一个\b 应该匹配单词foo 的开头,\w+ 应该匹配单词foo,最后一个\b 应该匹配单词foo 的结尾。我的理解有什么问题?

【问题讨论】:

    标签: python regex


    【解决方案1】:

    如果您在\b 中不转义反斜杠,则\b 匹配退格,而不是单词边界。

    >>> '\b'    # BACKSPACE, not \ + b
    '\x08'
    >>> '\\b'   # \ + b
    '\\b'
    >>> r'\b'   # raw string literal (r'\b' == '\\b')
    '\\b'
    
    >>> re.match('\b\w+\b', 'foo')
    >>> re.match(r'\b\w+\b', 'foo')
    <_sre.SRE_Match object at 0x0000000002C18100>
    
    猜你喜欢
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    相关资源
    最近更新 更多