使用Google表格,我想从“ href”属性中获取一个没有可能查询的网址。例如,从https://test.com
或<a href="https://test.com">Test1</a>
获取<a href="https://test.com?this">Test1</a>
。
我使用了https://stackoverflow.com/a/40426187/4829915中提供的正则表达式答案来删除查询字符串,然后提取实际的URL。
有没有办法在一个公式中做到这一点?
请在下面查看我的操作。在所有这些示例中,最终输出为https://test.com
A B C
1 \?[^\"]+ href="(.+)"
2 <a href="https://test.com">Test1</a> =REGEXREPLACE(A2, B$1, "") =REGEXEXTRACT(B2, C$1)
3 <a href="https://test.com?param=eter">Test2</a> =REGEXREPLACE(A3, B$1, "") =REGEXEXTRACT(B3, C$1)
4 <a href="https://test.com?param=eter&and=this">Test3</a> =REGEXREPLACE(A4, B$1, "") =REGEXEXTRACT(B4, C$1)
答案 0 :(得分:3)
在这个答案中,我想提出两种模式。在第一种模式中,它使用REGEXEXTRACT
。在第二种模式中,它通过Google Apps脚本使用自定义功能(这是一个示例。)。
=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];
}