Python 为什么';t\b\w+\b匹配一个单词?

Python 为什么';t\b\w+\b匹配一个单词?,python,regex,Python,Regex,为什么下面的Python语句返回None >>> re.match('\b\w+\b', 'foo') >>> 据我所知,这应该与单词foo匹配。第一个\b应该匹配单词foo的开头,\w+应该匹配单词foo,最后一个\b应该匹配单词foo的结尾。我的理解有什么错误?如果在\b中没有转义反斜杠,\b匹配的是反斜杠,而不是单词边界 >>> '\b' # BACKSPACE, not \ + b '\x08' >>> '\

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

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

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

如果在
\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>
>'\b'#退格,而不是\+b
“\x08”
>>>'\\b'\+b
“\\b”
>>>r'\b'#原始字符串文字(r'\b'=='\\b')
“\\b”
>>>重新匹配('\b\w+\b',foo')
>>>重新匹配(r'\b\w+\b',foo')
更多关于