从 Google 表格中的 HTML 文本中提取 href 属性

Bře*_*eťa 4 html html-parsing google-sheets google-apps-script

我的 Google 电子表格中有大约 3000 行,每一行都包含有关我们网站上一篇文章的数据。在一列(例如 A:A)中存储了 HTML 格式的文本。我需要href=""从此列中提取属性内的所有 URL ,然后再使用它们。(它可以是数组或文本字符串,在 B 列中用逗号或空格分隔)

我尝试使用REGEXTRACT公式,但它只给了我第一个结果。然后我尝试使用,REGEXREPLACE但我无法编写正确的表达式来仅获取 URL 链接。

我知道使用正则表达式从 HTML 获取任何内容并不是正确的方法。还有另一种方法可以从一个单元格中的 HTML 文本中提取这些值吗?

示例数据链接:Google 电子表格

提前谢谢你!我是这里的新手,也是脚本、解析等方面的新手。

Tan*_*ike 5

这个样品怎么样?我用于href=\"(.*?)\"检索 URL。regex101.com 的示例在这里

1. 使用谷歌电子表格功能:

=TEXTJOIN(CHAR(10),TRUE,ARRAYFORMULA(IFERROR(REGEXEXTRACT(SPLIT(a1,">"),"href="&CHAR(34)&"(.*?)"&CHAR(34)))))
Run Code Online (Sandbox Code Playgroud)

在这种情况下,由于REGEXEXTRACT只检索第一个匹配的字符串,因此在单元格数据被 分隔后SPLIT,URL 被 检索REGEXEXTRACT

结果 :

在此处输入图片说明

2. 使用 Google Apps 脚本:

function myFunction(str){
  var re  = /href=\"(.*?)\"/g;
  var result = "";
  while ((res=re.exec(str)) !== null) {
    result += res[1] + "\n";
  };
  return result.slice(0,-1);
}
Run Code Online (Sandbox Code Playgroud)

此脚本可用作自定义函数。在使用这个的时候,请放入=myFunction(A1)单元格。

结果 :

结果与上述方法相同。

如果我误解了你的问题,我很抱歉。