正则表达式 - 排除域名

时间:2015-09-25 06:45:32

标签: regex

让我们说,我有域名

@abc.com.

如果有3个或更多外部收件人,我需要匹配模式。

例如: 到:

  

user1@abc.com; external@contoso.com; user2@abc.com; user3@abc.com;   user4@abc.com; user5@abc.com; external2@contoso.com; test@google.com

我已经拥有的正则表达式如下:

To:(.*@[^a][^b][^c][^.][^c][^o][^m].*){3,}

它有点工作,但看起来很讨厌。 也许以某种方式实现这个? ^((?!@abc.com).){3,}

谢谢!这对我有很大的帮助

1 个答案:

答案 0 :(得分:1)

你需要匹配:

  1. A "@"
  2. 未跟"abc."
  3. 更多字符,直到下一个"@"
  4. (1),(2)和(3)重复3次
  5. 此表达式将匹配具有3个外部收件人的主题:

    (?:@(?!abc[.]).*?){3}
    

    DEMO

    Regular expression visualization

    它使用negative lookahead (?!abc[.])来检查您的域名后面没有。 .*?可以在不同的@之间使用字符。

    您也可以将abc[.]更改为abc[.]com(?:[; ]|$)或您的真实域名。