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

时间:2017-10-11 17:40:00

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

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

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

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

链接到示例数据:Google Spreadsheet

提前告诉你!我是真正的新手,也是脚本,解析等。

1 个答案:

答案 0 :(得分:2)

这个样品怎么样?我使用href=\"(.*?)\"来检索网址。 regex101.com的样本为here

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

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

在这种情况下,由于REGEXEXTRACT仅检索第一个匹配的字符串,因此在单元格数据被SPLIT分隔后,网址将由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)放入单元格。

结果:

结果与上述方法相同。

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