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

正则表达式:支持含连字符FQDN的邮箱地址检测

解决邮箱正则支持用户名和域名含连字符的问题

你的正则无法匹配带连字符的域名,核心问题出在域名部分的规则限制过严。修改后的正则可以同时支持用户名和域名包含连字符,且更符合域名规范:

const string Pattern = @"(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@" +
                       @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\." +
                       @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|" +
                       @"([a-zA-Z0-9][\w-]*[a-zA-Z0-9]\.)+[a-zA-Z0-9]{2,})";

修改关键点:

  • 域名子域名规则调整:将原正则中域名部分的([a-zA-Z]+[\w-]+\.)+改为([a-zA-Z0-9][\w-]*[a-zA-Z0-9]\.)+
    • 允许子域名以数字开头(符合域名规范)
    • 支持子域名包含任意数量的连字符,同时避免子域名以连字符开头或结尾的非法情况
    • 支持单个字符的子域名(如a.com这类格式)
  • 顶级域名规则放宽:将[a-zA-Z]{2,4}改为[a-zA-Z0-9]{2,},适配现在越来越多的长顶级域名(如.xyz、.online),同时允许顶级域名包含数字

注:你的正则中用户名部分已经支持连字符([\w-]包含连字符),无需额外修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:14:53