2019.9.12 更新 今天偶然看到 python 官网中,还介绍了一个专门的工具,用于 python2 升级 python3,以后有机会使用下看看https://docs.python.org/zh-cn/3.7/library/2to3.html
背景python2 升 python3,语法略有不同,例如 python2 :print “test” python3:print(“test”)这时,项目中面临着大量的改动,考虑有正则解决问题 大概思路1、匹配到所有格式如“print 任何字符”这样的语句2、去掉 print 之后的空格,将空格之后的所有字符用括号括起来实现方式:print (.*) 可以匹配所有格式如“print 任何字符”这样的语句,并将空格之后的所有内容保留起来,替换时用 $1 来表示即可print\($1\) 可以将空格之后的所有字符用括号括起来 原理. 可以匹配除了换行(\n)之外的所有字符* 表示 0 次或多次() 括号括起来的内容会被保留起来,替换时用 $1 来表示即可参考:https://blog.csdn.net/babybabyup/article/details/81078742https://blog.csdn.net/scl323/article/details/84098366 实例:
注意:
对于如下格式的语句,会引起错误
”’print “test1”
print “test2″ ”’
因为,经过正则替换之后,第2行会变成这样:print “test2″ ”’)
所以在用正则替换之后,可以全局搜索一下,有没有 ”’) 或者 ”’ )( ”’ 与 ) 之间可能有多个空格,可以多敲几个确认下 ),有的话,把多余的 ) 去掉即可