詳解python正則\b和\B的區別


不知道你會不會出現這種錯誤,

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')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM