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

如何用正则表达式匹配不含指定合法域名的钓鱼邮件名称

匹配钓鱼邮件的正则表达式解决方案

需求:匹配所有包含John Smith(不区分大小写)的邮件行,排除其中域名是mymail.com的合法邮件。

示例输入

John Smith (notmyemail@sodifh.com)
John Smith (notmyemail@SODI.com)
John Smith (jsmit34@gmail.com)
John Smith (myRealEmail@mymail.com)

其中仅最后一行需要被排除。

你之前尝试的问题分析

  • 第一个正则逻辑错误:@^((?i)\bmymail\.com\b)*$部分写法混乱,^在这里是行首符号,不能用来否定域名,导致无法正确匹配非法邮件。
  • 第二个正则范围过窄:仅排除了gmail.com的邮件,无法覆盖其他非法域名。

正确正则表达式

写法1(需开启工具的不区分大小写模式)

^John Smith.*@(?!mymail\.com\b).+$

写法2(内置不区分大小写标记,无需额外设置)

(?i)^John Smith.*@(?!mymail\.com\b).+$

正则解释

  • (?i):内置不区分大小写标记,自动匹配john smith、John Smith、JOHN SMITH等所有大小写组合。
  • ^John Smith:匹配行首的"John Smith"(不区分大小写)。
  • .*:匹配@符号前的任意字符(比如括号里的用户名部分)。
  • @(?!mymail\.com\b):关键的否定预查,确保@后面紧跟的不是完整的mymail.com域名;\b是单词边界,避免误排除mymail.com.cn这类包含合法域名片段的非法地址。
  • .+$:匹配非法域名部分直到行尾。

效果验证

  • 匹配:前三行钓鱼邮件
  • 不匹配:最后一行合法邮件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:17:01