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
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
\b
,字邊界,字字符和非單詞元件之間匹配。因此,它將在諸如a
之類的單詞字符與字符串末尾之間匹配,但不會在諸如.
之類的非單詞字符與字符串末尾之間匹配。
由於geekosaur指出\b
僅僅是寫
(?:(?<=\w)(?!\w)|(?<!\w)(?=\w))
在你的情況的一小段路,你可能需要使用
(?!\w)
或
(?!\S)
,而不是\b
。