正则表达式[]、和B的区别

1、[] 匹配转义字符本身,匹配退格键 u0008 

print(re.sub(re.compile(r"[]", re.S), "|", "That dang-to_ot_in' #!@#$ varmint's cost me $199.95!"))

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

2、 匹配字母或数字边界

MSDN:匹配必须出现在 w (字母数字)和 W (非字母数字)字符之间的边界上

print(re.sub(re.compile(r"", re.S), "|", "That dang-to_ot_in' #!@#$ varmint's cost me $199.95!"))

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

属于匹配位置的元字符,一般作占位作用,而不被捕获,同属于匹配位置的还有匹配行起始位^和行结束位$

3、B 匹配非字母和数字边界

MSDN:匹配不得出现在  边界上

print(re.sub(re.compile(r"B", re.S), "|", "That dang-to_ot_in' #!@#$ varmint'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!|

非字母数字边界,除了英文字母与数字之外的其他字符均可被匹配到

Copyright © 2021 Primzahl. All rights reserved.

原文地址:https://www.cnblogs.com/Primzahl/p/10551994.html