正則表達式[\b]、\b和\B的區別


1、[\b] 匹配轉義字符\b本身,匹配退格鍵 \u0008 

print(re.sub(re.compile(r"[\b]", re.S), "|", "That \bdang-to_ot_in' \b#!@\b#$ var\bmint's cost me $199.95!"))

運行結果:That |dang-to_ot_in' |#!@|#$ var|mint's cost me $199.95!

 

2、\b 匹配字母或數字邊界

MSDN:匹配必須出現在 \w (字母數字)和 \W (非字母數字)字符之間的邊界上

print(re.sub(re.compile(r"\b", re.S), "|", "That \bdang-to_ot_in' \b#!@\b#$ var\bmint's cost me $199.95!"))

運行結果:|That||dang|-|to_ot_in|'#!#$ |var|mint|'|s| |cost| |me| $|199|.|95|!

\b屬於匹配位置的元字符,一般作占位作用,而不被捕獲,同屬於匹配位置的還有匹配行起始位^和行結束位$

 

3、\B 匹配非字母和數字邊界

MSDN:匹配不得出現在 \b 邊界上

print(re.sub(re.compile(r"\B", re.S), "|", "That \bdang-to_ot_in' \b#!@\b#$ var\bmint's cost me $199.95!"))

運行結果:T|h|a|t d|a|n|g-t|o|_|o|t|_|i|n'| |#|!|@|#|$| v|a|m|i|n|t's c|o|s|t m|e |$1|9|9.9|5!|

非字母數字邊界,除了英文字母與數字之外的其他字符均可被匹配到

 


免責聲明!

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



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