You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多段PDF链接路径批量替换:保留文件名替换前缀

批量替换PDF链接路径(保留文件名)的正则解决方案

问题分析

需要批量替换HTML中PDF链接的路径部分,仅保留文件名,同时避免连续链接被合并。此前使用的正则规则失效,核心问题是未正确捕获文件名并引用,且匹配逻辑无法适配多变的路径层级。

正确的正则匹配与替换规则

查找正则(需开启编辑器的正则匹配模式):

href=".*?([^/]+?\.pdf)"

替换内容:

href="/wp-content/uploads/2024/02/$1"

规则解释

  • 匹配逻辑:

    • href=" 精准定位链接属性的开头
    • .*? 非贪婪匹配任意字符,直到遇到最后一个/(适配任意层级的路径结构)
    • ([^/]+?\.pdf) 捕获组:[^/]+?匹配所有非/的字符(即PDF文件名),\.pdf确保只针对PDF文件,括号将文件名保存为可引用的捕获组$1
    • " 匹配属性结尾的引号
  • 替换逻辑:
    用固定目标路径/wp-content/uploads/2024/02/替换原有路径,$1引用捕获到的PDF文件名,实现路径替换但保留文件名的效果。

此前规则失效的原因

你之前的替换规则中href="/wp-content/uploads/2024/02/.*?.pdf"把正则语法.*?.pdf当成了字面量输出,导致替换后的链接内容错误;同时原匹配规则href="/.*?/.*?.pdf"只能适配固定层级的路径,当路径新增层级(比如多了sector1目录)就会失效。

避免连续链接合并的关键

使用非贪婪匹配.*?而非贪婪匹配.*,确保每个<a>标签的href属性被单独匹配,不会跨标签捕获内容,自然不会合并连续链接。

示例验证

原链接:

<a href="/images/2023/urbanism/rcs/filename1.pdf">filname1</a>
<a href="/images/2023/urbanism/sector1/rcs/filename2.pdf">filname2</a>

替换后:

<a href="/wp-content/uploads/2024/02/filename1.pdf">filname1</a>
<a href="/wp-content/uploads/2024/02/filename2.pdf">filname2</a>

内容的提问来源于stack exchange,提问作者Cristian Capriceanu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 08:32:26