我有一个95MB的XML文件,内容从旧的CMS(通过Wordpress通过Drupal)到新的CMS(Squarespace)。
Squarespace导入过程不断中断,并且似乎归结为试图在新服务器中执行PHP的链接。
例如:
<img src="/generate-image.php">
在导入过程中,新CMS将其识别为内部链接,并尝试执行该URL来导入内容,将其视为攻击或尝试进行代码注入并关闭该过程。
因此,我想找到一种以“ /”开头并包含“ php”的URL,以便将其删除。
我应该清楚,我只想标识内部链接,而不是指向其他站点的外部链接。
通过Regex可以做到吗?如果我可以将Regex语句插入Atom&Find / Replace,我真的很想避免编写脚本来做到这一点。
答案 0 :(得分:2)
使用negated class处理一些简单的正则表达式。
"\/[^\s"'><]+\.php
[^\s"'><]
匹配除空白,引号,大/小符号php
之后添加word boundary \b
Here is the demo at regex101 comparing internal php links to external php links
答案 1 :(得分:0)
是的,使用正则表达式是可能的。试试这个:
(\/*)[\w.]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+\b.php\b
它将与有效URL的所有可能字符匹配。