爲什麼不是字邊界工作?Python正則表達式字邊界不按預期方式工作
閱讀this site,我知道一個單詞的邊界是這樣的:
有跡象表明,有資格作爲單詞邊界的三個不同位置:
- 字符串中的第一個字符之前,如果第一個字符是一個字的字符。
- 在字符串中的最後一個字符後面,如果最後一個字符是單詞字符。
- 字符串中的兩個字符之間,其中一個是單詞字符,另一個不是單詞字符。
下面的a
字符串似乎適合至少一個上面列出的位置。
a = 'Builders Club The Ohio State'
re.sub('\bThe\b', '', a, flags=re.IGNORECASE)
輸出。 'The'沒有變化。
'Builders Club The Ohio State'
爲什麼不是字邊界的工作?
當我在'The'模式之前和之後放置空格時,正則表達式似乎工作。
a = 'Builders Club The Ohio State'
re.sub(' The ', ' ', a, flags=re.IGNORECASE)
輸出:
'Builders Club Ohio State'
爲了詳細說明:反斜線在正常的字符串,因此轉義字符'\ B'就像變成[一退格字符](https://docs.python.org/2.0/ref/strings.html)。所以無論你需要使用'\\ b'還是一個原始字符串文字。 – Joey
通常,每當使用正則表達式時,使用原始字符串是一個好主意。 – RevanProdigalKnight
啊ic。如果我使用r「它會搞亂其他字符,比如^和$? – user3314418