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

标签 html google-apps-script google-sheets html-parsing

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

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

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

样本数据链接:Google Spreadsheet

提前谢谢你!我在这里以及脚本、解析等方面都是新手。

最佳答案

这个 sample 怎么样?我用了href=\"(.*?)\"用于检索 URL。 regex101.com 的样本是 here .

1。使用 Google 电子表格功能:

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

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

结果:

enter image description here

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);
}

此脚本可用作自定义函数。当你使用它时,请输入=myFunction(A1)到一个单元格。

结果:

结果与上述方法相同。

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

关于html - 从 Google 表格中的 HTML 文本中提取 href 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46694413/

相关文章:

google-apps-script - 类型错误 : Cannot call method "getActiveSheet" of null

javascript - 选择所有包含 &lt;input&gt; 和 <section> 标签的 <table> 标签

javascript - 如何在输入字段顶部移动虚拟键盘?

google-apps-script - 如何从电子表格加载特定工作表

google-sheets - Google 表格小于或等于 (<=) 提供错误结果

google-apps-script - Google 电子表格应用程序脚本库可以包含用户对话框吗?

javascript - Jquery 多步双击

html - 在 HTML/CSS 中寻求有关文本溢出/线性渐变的帮助

javascript - 创建新站点列表页面后,如何为其添加值?

javascript - 如何从 Google Spreadsheet JSON feed 获取特定属性