You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何重构Python代码从邮箱域名中正确提取国家代码?

提取邮箱域名中的国家代码:重构方案

我尝试从邮箱域名中提取国家代码,以示例域名unw.us.co测试时,最初的代码无法得到正确结果:

host = 'unw.us.co'
data1 = host.find('.')
print(data1)
data2 = host.find('.', data1)
print(data2)
data3 = host[data1+1 : data2 ]
print(data3)

这段代码执行后,data3输出的是us,无法得到完整的目标代码us.co。调整切片范围后的代码虽然能运行,但硬编码+3的方式不够灵活,适配不了其他长度的域名:

host = 'unw.us.co'
data1 = host.find('.')
print(data1)
data2 = host.find('.', data1)
print(data2)
data3 = host[data1+1 : data2+ 3 ]
print(data3)

重构方案

可以用更灵活的方式实现需求,以下是两种可靠的重构思路:

方法1:分割域名后取最后两级(推荐)

利用字符串的split()方法分割域名,直接取最后两段拼接,适配绝大多数域名格式:

host = 'unw.us.co'
domain_parts = host.split('.')
# 取最后两个部分作为国家/地区代码
country_code = '.'.join(domain_parts[-2:])
print(country_code)  # 输出: us.co

如果你的需求是提取最顶级的国家代码(比如co),只需取domain_parts[-1]即可。

方法2:修正索引逻辑,取第一个点之后的全部内容

如果确定要提取第一个点之后的所有内容作为国家代码,可以直接从第一个点的下一位截取到字符串末尾,无需寻找第二个点:

host = 'unw.us.co'
first_dot_index = host.find('.')
country_code = host[first_dot_index + 1:]
print(country_code)  # 输出: us.co

内容的提问来源于stack exchange,提问作者Rahil Nasim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 08:04:59