Regexp用于垃圾邮件过滤器

时间:2018-06-14 07:40:21

标签: regex email outlook smtp

我尝试在我们的Microsoft Exchange服务器上设置垃圾邮件的过滤器。

我需要检查字母广告垃圾邮件,如果有标题"收到"超过3个点并且它不会包含单词" outlook"

可以通过正则表达式.*\..*\..*\..*

来检查点

检查字符串是否包含单词" outlook"可以通过正则表达式((?!outlook).)*$

完成

我尝试在一个表达式^(?=.*\..*\..*\..*)(?=((?!outlook).)*$)中联合起来但不起作用:(

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您可以使用

^(?!.*outlook)[^.]*(?:\.[^.]*){0,2}$

请参阅regex demo

<强>详情

  • ^ - 字符串开头
  • (?!.*outlook) - 行上任何位置都不允许outlook子字符串
  • [^.]* - 除.
  • 以外的任何0 +字符
  • (?:\.[^.]*){0,2} - 0,1或2次出现
    • \. - 一个点
    • [^.]* - 除.
    • 以外的任何0 +字符
  • $ - 字符串结束。

因此,任何字符串都将匹配,没有outlook且只有0,1或2个点。

请注意,如果您有多行,则必须make . match multiple lines