Python正则表达式边界

时间:2012-04-09 01:05:49

标签: python regex

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

import re

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

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

输出:

False

True

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

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

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

(?!\w)

(?!\S)

而不是\b