0

python处理'.'的方式是否有错误?或'\ b'?我不确定为什么这会产生不同的结果。

import re

regex1 = r'\.?\b'
print bool(re.match(regex1, '.'))

regex2 = r'a?\b'
print bool(re.match(regex2, 'a'))

输出:

False

True
4

2 回答 2

4

\b,单词边界,单词字符和非单词元素之间的匹配。因此,它将匹配单词字符 likea和字符串的结尾,但不会匹配非单词字符 like.和字符串的结尾。

于 2012-04-09T01:09:08.493 回答
0

正如 geekosaur 指出的那样,\b这只是一种简短的写作方式

(?:(?<=\w)(?!\w)|(?<!\w)(?=\w))

在您的情况下,您可能想要使用

(?!\w)

或者

(?!\S)

而不是\b.

于 2012-04-09T01:47:03.453 回答