REGEX Select From Where Word Not Found难度

ar5n3qh5  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(117)

我需要一个正则表达式来匹配网络钓鱼电子邮件名称,其中没有找到特定的名称或单词。
比如...

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

底部的电子邮件是唯一合法的电子邮件,需要忽略。
我试过类似的:

^(J|j)ohn.(S|s)mith.*\@^((?i)\bmymail\.com\b)*$

但这无法选择3坏的电子邮件.还尝试类似:

^(J|j)ohn.(S|s)mith.*@gmail\.com

但这种方法只删除Gmail的一个。
我如何才能正确地模式匹配删除所有坏的电子邮件,无论字母的情况下,只允许一个域(在这种情况下mymail.com),没有其他人?

vwkv1x7d

vwkv1x7d1#

您可以将此正则表达式与负的前瞻条件一起使用

^[jJ]ohn.[sS]mith[^@]*@(?!mymail\.com).+

RegEx Demo

RegEx详情:

  • ^:开始
  • [jJ]ohn:匹配Johnjohn
  • .:匹配任意字符
  • [sS]mith[:匹配Smithsmith
  • [^@]*:匹配0或@以外的任何字符的kore
  • @:匹配@
  • (?!mymail\.com):如果mymail.com位于下一个位置,则负向前看会导致匹配失败
  • .+:匹配任意字符的1+

相关问题