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

如何编写覆盖三类特殊场景的JS正则以从邮箱地址提取域名

邮箱域名提取正则适配方案

适配规则说明

需要覆盖三类边界场景:

  • 不保留子域名,例如输入hello@sub.domain.com返回domain.com
  • 适配双点域名后缀,例如输入hello@domain.co.uk返回domain.co.uk
  • 支持域名部分包含@符号的特殊场景,例如输入hello@dom@in.com返回dom@in.com

最终可直接使用的正则表达式

/(?<=@).*?(?:[^.]+\.)?([^.]+\.(?:\w{2,3}\.\w{2}|\w{2,}))$/i

末尾的i修饰符表示忽略大小写,适配域名大小写混合的情况

不同环境使用说明

  • 支持正向零宽断言的语言(如Python、Java、ES2018+版本的JS)可直接匹配,取第一个捕获组的内容即可
  • 不支持正向断言的环境,可去掉开头的(?<=)部分,使用/@.*?(?:[^.]+\.)?([^.]+\.(?:\w{2,3}\.\w{2}|\w{2,}))$/i,同样取第一个捕获组内容

场景验证结果

  • 输入hello@domain.com → 输出domain.com,符合要求
  • 输入hello@sub.domain.com → 输出domain.com,自动剔除子域名
  • 输入hello@domain.co.uk → 输出domain.co.uk,适配双后缀场景
  • 输入hello@dom@in.com → 输出dom@in.com,兼容域名含@的特殊情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:24:05