我可以使用eq替换==(但我不确定如何在==之后抓住字符串,并将其放回替换为a)。有没有人有办法解决吗?如何将VSS中的==字符串更改为eq(字符串)?
我正在使用:%s/== /eq(/g
,但我需要在现有字符串的末尾获取)。
我试过:%s/== .*/eq(&)/g
但是当我运行它的时候,我意识到这也将“==”带入了我想要摆脱的替换字符串中。
我想我希望有一种方法来捕获未知的字符串,并将该确切的字符串放回到替换行。类似于:%s/== .*/eq(.*)/g
,其中。*是未知字符串。第一部分工作并抓取字符串,但不知道如何将其放回替换线上。特别是因为我不知道字符串可能有多少个字符/单词。
SOLUTION::%s/== \(.*\)/eq(\1)/
我不知道sed,但用Perl它会像''echo“foo == string”| perl -pe's/==(。*)/ eq($ 1)/ g'''。前段时间我从Sed切换到Perl,因为我认为它没有完整的正则表达式的能力。如果我记得正确的话,它有负面/积极的前瞻和后顾之忧。哦,对不起,错过了VIM部分的交易:( – tiblu
因此,当在VIM中使用Perl时,它就像'':%!perl -pe'/ ==(。*)/ eq($ 1)/ g'' ' – tiblu
谢谢。我曾经写过很多perl,但是我从来没有尝试过在VIM里面使用它,我可能不得不考虑一下, – general