如何在没有查询的情况下删除 href 属性?

How can I strip a href attribute without the query?

使用 Google 表格,我想从 "href" 属性中获取 URL 而没有 可能 查询。例如,从 <a href="https://test.com">Test1</a><a href="https://test.com?this">Test1</a>.

得到 https://test.com

我使用 中提供的正则表达式答案删除了查询字符串,然后提取了实际的 URL.

有没有办法在一个公式中做到这一点?

请看下面我做了什么。在所有这些示例中,最终输出为 https://test.com

    A                                                           B                               C
1                                                               \?[^\"]+                        href="(.+)"
2   <a href="https://test.com">Test1</a>                        =REGEXREPLACE(A2, B, "")      =REGEXEXTRACT(B2, C)
3   <a href="https://test.com?param=eter">Test2</a>             =REGEXREPLACE(A3, B, "")      =REGEXEXTRACT(B3, C)
4   <a href="https://test.com?param=eter&and=this">Test3</a>    =REGEXREPLACE(A4, B, "")      =REGEXEXTRACT(B4, C)

在这个回答中,我想提出两种模式。在第一个模式中,它使用 REGEXEXTRACT。在第二个模式中,它使用自定义函数 Google Apps Script(这是一个示例。)。

模式 1:使用公式

=REGEXEXTRACT(A2, C1)

其中 C1 是 href="(.+?)[\?"]

模式二:使用自定义函数

使用时,请将脚本复制粘贴到脚本编辑器中。然后请在 =getUrl(A2).

这样的单元格中使用它
function getUrl(value) {
  var obj = XmlService.parse(value.replace(/&/g, ";"));
  var url = obj.getRootElement().getAttribute("href").getValue();
  return url.split("?")[0];
}

结果:

参考文献: