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

如何在Google Sheets中用REGEXEXTRACT提取含空格的PDF链接

提取Google Sheets中多PDF链接并转为HTML链接的解决方案

要实现从A列字符串中提取所有PDF链接、替换空格为%20并包装成HTML元素,可使用以下适配新版Google Sheets的公式:

=BYROW(A1:A, LAMBDA(cell, IF(cell="",,TEXTJOIN(", ", TRUE, ARRAYFORMULA("<a href='"&SUBSTITUTE(REGEXEXTRACT(SPLIT(REGEXREPLACE(cell, "(https://.*?\.pdf)", "|$1|"), "|"), "https://.*?\.pdf"), " ", "%20")&"'>PDF链接</a>"))))

公式拆解

  • REGEXREPLACE(cell, "(https://.*?\.pdf)", "|$1|"):给每个PDF链接前后添加|分隔符,方便后续拆分筛选
  • SPLIT(..., "|"):按分隔符拆分字符串,得到包含链接与其他文本的数组
  • REGEXEXTRACT(..., "https://.*?\.pdf"):从拆分结果中精准提取所有PDF链接
  • SUBSTITUTE(..., " ", "%20"):将链接中的空格替换为URL编码格式%20
  • "<a href='"&...&"'>PDF链接</a>":把处理后的链接包装为HTML锚点元素
  • TEXTJOIN(", ", TRUE, ...):将同一单元格内的多个HTML链接用逗号空格分隔合并
  • BYROW(A1:A, LAMBDA(cell, ...)):遍历A列每个单元格,空单元格返回空值,避免无效输出

旧版Google Sheets兼容方案

如果你的Google Sheets版本不支持BYROW函数,可使用以下数组公式替代(需确保A列空值已处理):

=ARRAYFORMULA(IF(A1:A="",,TEXTJOIN(", ", TRUE, ARRAYFORMULA("<a href='"&SUBSTITUTE(REGEXEXTRACT(SPLIT(REGEXREPLACE(A1:A, "(https://.*?\.pdf)", "|$1|"), "|"), "https://.*?\.pdf"), " ", "%20")&"'>PDF链接</a>"))))

测试示例

若A1单元格内容为:

文档1:https://example.com/report Q3.pdf 文档2:https://test.com/guide 2024.pdf

公式输出结果为:
<a href='https://example.com/report%20Q3.pdf'>PDF链接</a>, <a href='https://test.com/guide%202024.pdf'>PDF链接</a>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:17:39