python2打印到python3的vim regex

python2打印到python3的vim regex,regex,vim,python-2.7,printing,python-3.x,Regex,Vim,Python 2.7,Printing,Python 3.x,假设我有一个python v2.7文件,其中包含如下代码: print 'asdf' print 'hi mom!' 但我想在python3中运行它,我需要向它们添加括号,如下所示: print('asdf') print('hi mom!') 我试图在vim中使用以下正则表达式来解决这个问题,但它不起作用: :%s/print\ '.*'/print('\1')/gc 它只是给了我一个带有空字符串的打印函数(带括号)。感谢您的帮助;谢谢。这将适用于您的示例 :%s/print \('.*

假设我有一个python v2.7文件,其中包含如下代码:

print 'asdf'
print 'hi mom!'
但我想在python3中运行它,我需要向它们添加括号,如下所示:

print('asdf')
print('hi mom!')
我试图在vim中使用以下正则表达式来解决这个问题,但它不起作用:

:%s/print\ '.*'/print('\1')/gc

它只是给了我一个带有空字符串的打印函数(带括号)。感谢您的帮助;谢谢。

这将适用于您的示例

:%s/print \('.*'\)/print(\1)/g
  • 你不需要逃离这个空间
  • 实际上,您没有捕获括号中的任何内容,因此
    \1
    在正则表达式中是一个空字符串

  • 但是我也推荐使用

    因为所有优化和可证明的东西都很受欢迎,请使用谢谢,这就是我要找的正则表达式。我不需要像“2to3”这样的东西,但无论如何还是要谢谢你。@Benjamin如果你打算花很多时间在vim中使用正则表达式(如果你使用vim,你可能会经常使用它们),我建议你阅读或浏览大量的
    :h模式搜索