说来都是眼泪。Wordpress的数据库被注入了代码。每篇文章的底部都有如下这种代码。

我想的是挨个清除。下载了sql文件,用编辑器打开…

这一看,疯了。相关注入的代码都不一样。没法使用查找替换的方法。共计754处被注入。难道要挨个用鼠标选中删除么?删除每一处用时5秒。共计用时62.83分钟。一个小时…

也有可能刚删10分钟就会吐。这样会不会太白痴了一点…

查看源代码无意中发现:

有注释。

那么,我是不是选中所有匹配这两个注释中间的文本直接删除是不是就可以了?

试试。

用VSCODE编辑器打开数据库文件。打开“查找/替换”。如上图,选中正则表达式的按钮。查找对象:

<!--codes_iframe-->.*?<!--/codes_iframe-->

“.”表示任意字符,“?”表示匹配0个或多个。即表达式为:A.*?B

延伸解读:

如果不包含两个注释怎么弄?

(?<=<!--codes_iframe-->).*?(?=<!--/codes_iframe-->) 

表达式:(?<=A).*?(?=B)

?<= 这个要匹配开始字符。
?= 这个要匹配结束字符。