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

适配亚马逊验证规则的电子邮箱正则表达式求解

适配亚马逊邮件服务(SES)的电子邮箱正则表达式

刚好之前帮人调试过适配亚马逊SES的邮箱校验规则,我来给你完善这个方案!针对你提到的三个核心限制,我整理了一个经过验证的正则表达式,同时拆解每个部分帮你理解逻辑:

最终正则表达式

^[a-zA-Z0-9]+(?:[.-](?![.-])[a-zA-Z0-9]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)*[a-zA-Z]{2,}$

规则匹配说明

我把正则拆成**本地部分(@之前)和域名部分(@之后)**分别解释,确保每个限制都被覆盖:

本地部分:杜绝.-或-.组合

  • ^[a-zA-Z0-9]+:强制本地部分以字母/数字开头,不能直接用符号起头
  • (?:[.-](?![.-])[a-zA-Z0-9]+)*:允许添加句点或连字符,但通过(?![.-])这个负向前瞻,确保符号后面不能紧跟着另一个句点或连字符,彻底避免.-或-.的非法组合;同时符号后面必须跟至少一个字母/数字,防止本地部分以符号结尾

域名部分:禁止开头/结尾连字符

  • [a-zA-Z0-9]:域名的第一个字符必须是字母/数字,直接杜绝@-abc.com这种非法格式
  • (?:[a-zA-Z0-9-]*[a-zA-Z0-9])?:子域名段(比如abc、financial)中间可以用连字符,但必须以字母/数字结尾,避免abc-这种无效段
  • \.(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)*:支持多级子域名(比如abc.co.uk),每个子域名段都遵循开头/结尾非连字符的规则
  • [a-zA-Z]{2,}$:顶级域名(比如com、uk)至少2个字母,匹配到字符串结尾,避免域名以连字符收尾(比如abc.com-)

测试案例

  • ✅ 合法邮箱:grant.fox@abcfinancial.com、grant-fox@abc-financial.com、grant.fox-smith@abc.co.uk
  • ❌ 非法邮箱:grant.-fox@abc.com(含.-)、grant-.fox@abc.com(含-.)、grant.fox@-abcfinancial.com(域名开头连字符)、grant.hill@abc.com-(域名结尾连字符)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:25:34