求助:使用Google Spreadsheets公式按3种格式截取URL
Google Sheets URL 各层级内容提取公式
以下公式均假设原始URL位于单元格A1,可根据实际单元格位置调整:
第一列:提取协议(含www前缀或仅协议)
公式:=IF(REGEXMATCH(A1, "^https?://www\."), REGEXEXTRACT(A1, "^https?://www"), REGEXEXTRACT(A1, "^https?://"))效果:对于
https://www.stackoverflow.com返回https://www,对于https://stackoverflow.com或https://web.stackoverflow.com返回https://第二列:提取根域名(如stackoverflow.com)
公式:=JOIN(".", INDEX(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), "."),, COUNT(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), "."))-1), INDEX(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), "."),, COUNT(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), "."))))效果:自动识别二级/多级根域名,如
web.stackoverflow.com返回stackoverflow.com,example.co.uk返回example.co.uk第三列:提取完整子域名(如web.stackoverflow.com)
公式:=REGEXEXTRACT(A1, "^https?://([^/]+)")效果:提取URL中域名的完整部分,包含所有子域名前缀
第四列:提取根域名加第一级路径(如stackoverflow.com/questions)
公式:=IFERROR(JOIN(".", INDEX(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), "."),, COUNT(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), "."))-1), INDEX(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), "."),, COUNT(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), ".")))) & "/" & REGEXEXTRACT(A1, "^https?://[^/]+/([^/]+)"), REGEXEXTRACT(A1, "([a-zA-Z0-9-]+\.[a-zA-Z]{2,})$"))效果:若URL存在第一级路径则拼接,无路径时仅返回根域名
第五列:提取根域名加前两级路径(如stackoverflow.com/questions/ask)
公式:=JOIN(".", INDEX(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), "."),, COUNT(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), "."))-1), INDEX(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), "."),, COUNT(SPLIT(REGEXEXTRACT(A1, "^https?://([^/]+)"), ".")))) & IFERROR(REGEXEXTRACT(A1, "^https?://[^/]+(/[^/]+/[^/]+)"), IFERROR(REGEXEXTRACT(A1, "^https?://[^/]+(/[^/]+)"), ""))效果:优先拼接前两级路径,仅存在一级路径时拼接一级,无路径时仅返回根域名
第六列:提取完整子域名加路径(如web.stackoverflow.com/questions/ask/how-to-trim-url)
公式:=REGEXREPLACE(A1, "^https?://([^?]+).*$", "$1")效果:提取域名加所有路径内容,自动去除URL后的参数(如
?param=1)
内容的提问来源于stack exchange,提问作者Vijay Singh Khatri
相关产品推荐
相关产品推荐

