如何用Python或正则从多格式域名列表中提取去重的唯一根域名
实现方案
你可以直接用正则配合Python集合去重实现,处理逻辑非常直接:
- 第一步:移除所有域名开头的
http://、https://协议前缀 - 第二步:移除域名开头的
www.前缀,得到纯根域名 - 第三步:用集合的天然去重特性过滤重复根域名,最终转回列表即可
可直接运行的代码
import re # 原始域名列表 raw_list = [ 'website.com', 'example.com', 'www.example.com', 'http://example.com', 'http://www.example.com', 'https://example.com' ] cleaned = set() # 正则匹配开头的协议、www前缀,统一替换为空 replace_pattern = re.compile(r'^https?://(?:www\.)?|^www\.') for item in raw_list: root_domain = replace_pattern.sub('', item) cleaned.add(root_domain) result = list(cleaned) print(result)
运行上述代码的输出和你预期完全一致:['website.com', 'example.com']
扩展说明
如果后续你的域名列表里出现带路径、端口的格式(比如https://www.example.com/docs/index、http://example.com:8080),只需要在正则替换后再加一步截断,取第一个/或:之前的内容即可,当前规则已经可以覆盖你给出的所有输入场景。
内容的提问来源于stack exchange,提问作者Qadri
相关产品推荐
相关产品推荐

