Python 2 和 3 的正则匹配

=Start=

缘由:

这个标题其实起的不太准确,因为Python 2 和Python 3中的官方正则模块re在不同版本中并没有什么不同,都支持的是Perl风格的正则语法,唯一的不同可能是在Python 3中字符串默认是Unicode,因此不会存在编码方面的问题,而Python 2则可能会有。

这里想记录就是最近碰到的一个比较有意思的正则匹配的case。

正文:

参考解答:

当前希望用Python将文档中包含「密码:123456」这种样式的内容用「xxx」进行批量替换,即:

对应的Python代码如下:

经过测试和对比发现,这里的不同之处就在于在Python 2和Python 3中均可以用:

表示「中文冒号/英文冒号/英文等于号」中的任意一个。

但是对于(raw格式的字符串):

只在Python 3中可行,在Python 2中进行unicode匹配要先对字符串进行显示转为utf8,否则达不到预期效果。

以上就是最近碰到的一个比较有意思的case,差点就中招了。。。

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/4413.html

《Python 2 和 3 的正则匹配》上有1条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注