BigQuery中从多格式域名动态提取客户端名称的技术问询
适配三种域名的客户端名称提取方案
针对你给出的三种域名格式,这里提供两种可直接运行的实现方式,都能准确提取目标客户端名称:
正则表达式方案
利用正则匹配捕获核心的主域名部分,无需针对不同域名结构写分支判断:
import re # 待处理的域名列表 domains = ['en-ae.sssports.com', 'amazon.co.uk', 'farfetch.com'] # 正则模式:匹配可选前缀子域,捕获主域名,匹配后续后缀 pattern = r'^(?:[^.]+\.)?([^.]+)(?:\.[^.]+)+$' for domain in domains: match_result = re.match(pattern, domain) if match_result: # 提取捕获组并首字母大写 client_name = match_result.group(1).capitalize() print(client_name)
运行后输出:
Sssports
Amazon
Farfetch
字符串分割方案
通过分割域名成段,根据段数和特征判断目标部分,逻辑更直观:
domains = ['en-ae.sssports.com', 'amazon.co.uk', 'farfetch.com'] for domain in domains: parts = domain.split('.') if len(parts) == 2: # 两段式域名直接取第一段 client = parts[0] else: # 三段式域名中,若倒数第二段是'co'(对应.co.uk类后缀),取第一段;否则取第二段 client = parts[0] if parts[-2] == 'co' else parts[1] print(client.capitalize())
同样能得到符合要求的输出。
内容的提问来源于stack exchange,提问作者Adishwor Pradhan
相关产品推荐
相关产品推荐

