「Python」正则\b异常的问题解决

在使用正则表达式排除指定字符串时,经常用到\b(?!***)来匹配,
Python的正则引擎有个需要注意的问题,否则会导致\b失效

需求是将html标签中的参数匹配出来洗掉,但要保留src,href>...等几个指定的参数,
网上常用的思路是使用\b(?!xxx)\w+来实现排除指定单词,
在sublime中的测试结果:


regextester在线工具测试结果:

在js环境下可用的正则表达式进入python的re库就匹配不到,
折腾了大半天找到了博主@sselssbh的一篇文章

在python字符串中,”b”是反斜杠字符,ASCII值是8。如果你没有使用 raw 字符串时,那么 Python 将会把 “\b” 转换成一个回退符,re 将无法象你希望的那样匹配它了。

解决方案是在python使用\b匹配时加上r' '进行转义
Python环境下的对比结果:


你可能感兴趣的:(「Python」正则\b异常的问题解决)