如果字符串仅包含已批准的子字符串,则需要帮助匹配字符串

时间:2011-04-12 18:55:34

标签: pattern-matching validation

我很难写这个正则表达式。

基本上,如果邮件收件人信封包含未批准的域,我需要阻止电子邮件传递。我的互联网邮件网关(Brightmail)允许创建规则,我可以使用Match / DoesNotMatch正则表达式指定条件。

例如,我只需要允许邮件到yahoo.com,hotmail.com和gmail.com。

如果有人向其他域发送消息,则应阻止该消息。

如果有人向yahoo.com和其他某个域发送消息,则应阻止该消息

如果有人向yahoo.com发送消息,则应该允许该消息。

这可能吗?

如果有人向yahoo.com和hotmail.com发送消息,则应该允许该消息。

我不是一个正常表达的总菜鸟,但这个让我难过。

2 个答案:

答案 0 :(得分:0)

这听起来像是可能的。这将是一个令牌查找,在令牌之间有一系列OR运算符。

我不知道您是否使用过此网站,但在开发正则表达式查询时,这是一个GODSEND。

http://regexpal.com/

答案 1 :(得分:0)

我和RegexPal一起玩,并选择了一个能够满足我需求的组合。

基本上,这将匹配@字符前面的子字符串,仅用于那些不是列出的字符串。

  

(( @ yahoo.com |?!。的@ hotmail.com | @ gmail.com))。的@

甚至可以使用

  

(( @ yahoo.com |?!。的@ hotmail.com | * @ gmail.com))@

或者

  

@(( @ yahoo.com |?!。的@ hotmail.com | * @ gmail.com))

甚至更好

  

@((*(雅虎|?!的Hotmail | GMAIL).COM))

最后一个只会突出显示不属于的域名字符串中的@符号。