(g)vim替换正则表达式

Mil*_*lde 5 regex vim

我正在寻找一个会改变的正则表达式.像这样:

print "testcode $testvar \n";
Run Code Online (Sandbox Code Playgroud)

printnlog("testcode $testvar \n");

我试过%s/print\s*(.\{-});/printnlog(\1);/g但是gvim说

print\s*(.\{-});
Run Code Online (Sandbox Code Playgroud)

不匹配.

我的错在哪里?可以在'\ s'之后使用'*',因为之后的'{ - };' 会阻止贪婪吗?

提前致谢.

MBO*_*MBO 8

在VIM,你必须预先考虑(,)|用反斜杠,所以尝试

:%s/print\s*\(.\{-}\);/printnlog(\1);/g
Run Code Online (Sandbox Code Playgroud)