如何查找以“/”开头且包含"php"的网址?

How to find URLs that starts with "/" and contain "php"?

我有一个 95MB XML 的内容文件,它是从旧 CMS(通过 Wordpress 的 Drupal)转移到新 CMS(Squarespace)的。

Squarespace 导入过程不断中断,似乎归结为 link 试图在新服务器中执行 PHP。

例如: <img src="/generate-image.php">

在导入过程中,新 CMS 将此识别为内部 link 并尝试执行该 URL 以导入内容,将其视为攻击或代码注入尝试并关闭过程。

所以我想要一种查找以“/”开头并包含 "php" 的 URL 的方法,以便我可以删除它们。

我应该清楚我只想识别内部 links 而不是外部 links 到其他网站。

这可以通过 Regex 实现吗?如果我可以将 Regex 语句插入 Atom & Find/Replace.

,我真的很想避免编写脚本来执行此操作

是的,这可以通过 Regex 实现。试试这个:

(\/*)[\w.]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!$&'\(\)\*\+,;=.]+\b.php\b

它将匹配所有可能的有效字符URL。

使用 negated class.

一些简单的正则表达式如何?
"\/[^\s"'><]+\.php
  • [^\s"'><] 匹配除 white space、引号、greater/lesser 符号
  • 之外的任何字符
  • 如果需要,在 php 之后添加 word boundary \b

Here is the demo at regex101 comparing internal php links to external php links