如何从Google Sheets单元格的HTML内容中提取URL至相邻单元格?
从HTML单元格提取多个URL到相邻单元格
按顺序提取单个URL
假设HTML内容在A1单元格:
- 提取第1个URL:
=REGEXEXTRACT(A1, "href="(.*?)"") - 提取第2个URL(先移除第一个URL的匹配内容,再提取剩余部分的第一个URL):
提取第N个URL时,只需把=REGEXEXTRACT(REGEXREPLACE(A1, "href="(.*?)"", "", 1), "href="(.*?)"")REGEXREPLACE的最后一个参数改为N-1,先移除前N-1个URL的匹配内容,再提取剩余部分的第一个即可。
一次性拆分所有URL到相邻列(Google Sheets)
如果想自动把所有URL分到同一行的相邻单元格,在B1单元格输入以下公式(新版Google Sheets直接回车即可,旧版需按Ctrl+Shift+Enter触发数组):
=SPLIT(REGEXREPLACE(A1, ".*?href="(.*?)".*?", "$1|"), "|", TRUE, TRUE)
这个公式会先把每个href标签里的URL提取出来用|拼接,再拆分到相邻单元格。比如你提供的示例内容,B1会得到https://www.test.com,C1得到https://www.afraid.com。
正则逻辑简单说明
href=":匹配HTML中转义后的href="(原始内容里用"表示双引号)(.*?):非贪婪捕获,只取到下一个"之前的内容,确保拿到完整的单个URL.*?:匹配URL前后的无关内容,确保只保留我们需要的URL部分
内容的提问来源于stack exchange,提问作者Craig
相关产品推荐
相关产品推荐

