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

正则表达式需求:含@gym-kk.com的邮箱串需不匹配

解决方案

要实现「只要逗号/分号分隔的邮箱列表里有一个包含@gym-kk.com,正则就不匹配」的需求,核心是先排除所有包含目标域名的情况,再匹配合法的邮箱列表。

正确正则表达式(分号分隔,适配你的测试用例)

^(?!.*@gym-kk\.com)(?:[\w+-.%]+@[\w-.]+\.[A-Za-z]+)(?:; ?[\w+-.%]+@[\w-.]+\.[A-Za-z]+)*$

正则拆解

  • (?!.*@gym-kk\.com):负向先行断言,扫描整个字符串,只要发现任何一处存在@gym-kk.com,直接判定不匹配,这是实现需求的关键
  • (?:[\w+-.%]+@[\w-.]+\.[A-Za-z]+):匹配单个合法邮箱(基础规则,可根据实际邮箱格式调整)
  • (?:; ?[\w+-.%]+@[\w-.]+\.[A-Za-z]+)*:匹配后续的分号(带可选空格)+ 邮箱的组合,支持多个邮箱

适配逗号分隔的版本

如果实际是逗号分隔的邮箱,把正则里的; ?替换成, ?即可:

^(?!.*@gym-kk\.com)(?:[\w+-.%]+@[\w-.]+\.[A-Za-z]+)(?:, ?[\w+-.%]+@[\w-.]+\.[A-Za-z]+)*$

你的旧正则问题分析

你之前写的第二个正则里,第二个分组是(; ?[\w+-.%]+@gym-kk+\.[A-Za-z]+)*,这反而会主动匹配包含@gym-kk.com的邮箱,所以才会出现「只要有该域名就匹配」的反向结果,完全搞反了需求逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:55:02