为什么以下Python语句返回None
?
>>> re.match('\b\w+\b', 'foo')
>>>
据我了解,这应与单词foo
匹配。第一个\b
应与单词foo
的开头匹配,\w+
应与单词foo
匹配,最终的\b
应与单词的结尾匹配foo
。我的理解有什么问题?
答案 0 :(得分:8)
如果你没有在\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>