2012-04-09 73 views
0

python處理'。'的方式有錯誤嗎?或'\ b'?我不確定爲什麼會產生不同的結果。Python的正則表達式邊界

import re 

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

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

輸出:

False 

True 

回答

4

\b,字邊界,字字符和非單詞元件之間匹配。因此,它將在諸如a之類的單詞字符與字符串末尾之間匹配,但不會在諸如.之類的非單詞字符與字符串末尾之間匹配。

0

由於geekosaur指出\b僅僅是寫

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

在你的情況的一小段路,你可能需要使用

(?!\w) 

(?!\S) 

,而不是\b