使用 archivarix 搜索和替换删除所有文章图像

Delete all article images using archivarix search & replace

我正在使用 Archivarix 恢复网站,但由于它没有下载任何图像,所有图像现在都损坏了,所以在使用 Archivarix 时,有一个使用正则表达式的“搜索和替换”工具

<a href="link" rel="bookmark">
<img width="840" height="450" src="path-to-image" class="entry-thumbnail wp-post-image" alt="">
</a>

我不知道正则表达式,但我想如果正则表达式针对具有 class "wp-post-image" 的图像标签,那么也许它可以将它们全部删除。

在网上搜索,我找到的唯一 <img .*?> 搜索整个图像标签。

Archivarix 正则表达式方言看起来支持 PCRE(愚蠢的帮助图像可从 post 历史中获得)。

如果你的例子有代表性,试试

<img (?:[^<>]* )?class="(?:[^<>"]* )?wp-post-image(?: [^<>"]*)?"(?: [^<>]*)>

简而言之,[^<>]* 匹配任何不包含 <> 的字符串,类似地 [^<>"]* 匹配任何也不包含 "。分组 (?: ...)? 表示括号内的任何内容都是可选的,并且不必存在。有了这些,我们可以表达一个表达:

  • 匹配 <img (后面有 space)
  • 可选,尽可能跳过另一个 space,然后是
  • class="
  • ... 可选地再次跳到 space 之前
  • wp-post-image
  • ... 可选地后跟更多 class 个名称,然后是
  • "
  • 可选地再次后跟更多属性,后跟
  • >

前面没有“可选”的部分是必需的。如果你的 HTML 是 machine-generated 可能会想出一个更严格的表达式,但这应该友好地处理元素属性数量的变化(alt=""width="480"等)及其顺序,以及 class= 属性中或多或少的 class 个名称。

Archivarix CMS 有一个名为“删除损坏的图像”的工具。只需单击一下,它就会扫描并删除该网站所有未恢复的图像。与“删除损坏的链接”工具相同。单击顶部菜单中的工具。无需为该任务使用搜索和替换。

PS:您确定为下载设置了正确的时间范围吗,因为如果这些图像存在于 Wayback Machine (WM) 中,它们将被恢复。但是,如果您设置的时间范围较窄,则只有 url 在此期间 WM 保存的内容将被恢复。了解 WA 的工作原理以及这些时间戳的含义非常重要。这些时间戳与“网站版本”或“页面版本”无关。它们表示确切的 url 被保存的确切时间。