在Google Sheets中用REGEXEXTRACT提取根域名及顶级域名
从各类URL变体中提取主域名(如example)的解决方案
嘿,我懂你要解决的痛点了——从各种带http/https、带不带www、顶级域名五花八门的URL里,精准抠出中间的主域名(比如你举的example),之前试了Stack Overflow上的公式都不管用?别慌,给你两个亲测有效的方案,覆盖表格处理和编程批量处理的场景!
方案一:Excel/Google Sheets 正则公式(适合表格批量处理)
如果你用Excel 365或者Google Sheets,直接用这个正则公式就能搞定所有你列的URL变体,甚至适配.biz、.eu这类其他顶级域名:
=REGEXEXTRACT(A1, "(?:https?://)?(?:www\.)?([^/.]+)(?:\..+)?")
公式拆解(懂原理更放心):
(?:https?://)?:匹配可选的http://或https://,?:表示不捕获这个部分(?:www\.)?:匹配可选的www.,同样不捕获([^/.]+):这就是我们要的核心!捕获第一个点或斜杠之前的内容,也就是主域名(比如example)(?:\..+)?:匹配后面的顶级域名部分(比如.com、.co.uk),不捕获
把你的URL放在A列,在B列输入这个公式,下拉就能批量提取出所有主域名啦!
如果是旧版Excel(不支持REGEXEXTRACT),可以用这个嵌套IF的组合公式,虽然麻烦点但也能用:
=IF(ISNUMBER(FIND("www.",A1)),MID(A1,FIND("www.",A1)+4,FIND(".",A1,FIND("www.",A1)+4)-FIND("www.",A1)-4),MID(A1,FIND("//",A1)+2,FIND(".",A1,FIND("//",A1)+2)-FIND("//",A1)-2))
方案二:Python 批量处理(适合大量URL场景)
如果要处理成百上千个URL,用Python的tldextract库绝对是最优解——它内置了完整的顶级域名列表,能自动识别.co.uk这类特殊的二级顶级域名,比自己写正则靠谱太多!
步骤:
- 先安装库:
pip install tldextract
- 代码示例:
import tldextract # 把你的URL列表放这里 url_list = [ "https://www.example.com", "http://example.com", "http://www.example.com", "https://www.example.co.uk", "http://example.co.uk", "http://www.example.co.uk", "https://www.example.org", "http://example.org", "http://www.example.org" ] # 批量提取主域名 for url in url_list: result = tldextract.extract(url) print(result.domain) # 每一行都会输出 example
这个库会把域名拆成subdomain(比如www)、domain(我们要的主域名)、suffix(顶级域名)三个部分,直接取domain字段就搞定啦!
内容的提问来源于stack exchange,提问作者chappers




