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

正则表达式匹配排除特定邮箱域名的问题求助

修正后的正则表达式及说明

问题分析

原正则存在两个核心问题:

  • 用户名匹配范围过窄,未包含邮箱允许的=、+等特殊字符;
  • 负向预查逻辑错误,误将域名中任意位置出现的被排除后缀(如co.kr)都判定为不符合,而非仅排除域名结尾是这些后缀的情况,同时co.kr中的点未转义,会匹配任意字符。

修正后的正则

^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+@(?!.*\.(com|co\.kr|net|org)$)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$

修改点详解

  1. 扩展用户名匹配范围
    将原用户名部分\w+[-.w]*替换为[a-zA-Z0-9!#$%&'*+/=?^_{|}~.-]+`,覆盖了邮箱标准中允许的用户名特殊字符,解决包含`=`、`+`等符号的邮箱无法匹配的问题。

  2. 修正负向预查逻辑

    • 把原预查(?!.+(com|co.kr|net|org))改为(?!.*\.(com|co\.kr|net|org)$):仅当域名结尾是被排除的后缀时才拒绝匹配,避免误判域名中间包含这些字符串的情况;
    • 转义co.kr中的点为co\.kr,确保只匹配真实的点字符,而非任意字符。
  3. 添加首尾锚定
    增加^(开头)和保留原有的$(结尾),确保匹配的是完整的邮箱字符串,而非文本片段。

测试验证

  • 可正常匹配:test+abc@example.cn、test=123@sub.example.jp、user-name@test.info;
  • 会排除:test@example.com、user@domain.co.kr、admin@site.net。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 06:25:04