不知道你會不會出現這種錯誤,
print(re.findall('er\b','never'))
輸出結果卻為空?
如果你出現這種問題,說明你沒有轉義,試着輸入以下語句
print(re.findall(r'er\b','never'))
\b,\B是單詞邊界,不匹配任何實際字符,所以是看不到的;\B是\b的非(補)。
\b:表示字母數字與非字母數字的邊界, 非字母數字與字母數字的邊界。
\B:表示字母數字與(非非)字母數字的邊界,非字母數字與非字母數字的邊界。
實例
猜測一下下面的結果,具體答案及詳解請[移步][https://blog.csdn.net/uvyoaa/article/details/80854459]
import re
re.split(r'123\b','==123!! abc123. 123. 123abc. 123')
re.split(r'123\b','==123!! abc123. 123\tabc 123')
re.split(r'\b123\b','123 ==123!! abc123.123.123abc.123')
re.split(r'\b123=\b','==123!! abc123,123,123=abc,123')
re.split(r'\b123a\b','==123!! abc123,123,123a\nbc,123')
re.split(r'\b123=\b','==123!! abc123,123,123==abc,123')
# \B
re.split(r'pyc\B','1pycthon py5 2pyc342 pyc1py2pyr pyp3 3pyc# pyc')
re.split(r'py=\B','1py=cthon py5 2py=342 py==1py2py4 pyp3 3py- pyabc')
re.split(r'\b123=\B','==123!! abc123,123,123==abc,123')