我的Google电子表格中有大约3000行,每行包含有关我们网站上一篇文章的数据。在一列(例如A:A)中以HTML格式存储格式化文本。我需要从此列中提取href=""
属性中的所有网址,然后再使用它们。 (它可以是用B列中的昏迷或空格分隔的数组或文本字符串)
我尝试使用REGEXTRACT
公式,但它只给出了第一个结果。然后我尝试使用REGEXREPLACE
,但我无法编写正确的表达式来获取URL链接。
我知道使用正则表达式从HTML获取任何内容都不是正确的方法。是否有另一种方法可以从一个单元格中的HTML文本中提取这些值?
链接到示例数据:Google Spreadsheet
提前告诉你!我是真正的新手,也是脚本,解析等。答案 0 :(得分:2)
这个样品怎么样?我使用href=\"(.*?)\"
来检索网址。 regex101.com的样本为here。
=TEXTJOIN(CHAR(10),TRUE,ARRAYFORMULA(IFERROR(REGEXEXTRACT(SPLIT(a1,">"),"href="&CHAR(34)&"(.*?)"&CHAR(34)))))
在这种情况下,由于REGEXEXTRACT
仅检索第一个匹配的字符串,因此在单元格数据被SPLIT
分隔后,网址将由REGEXEXTRACT
检索。
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)
放入单元格。
结果与上述方法相同。
如果我误解了你的问题,我很抱歉。