我尝试在我们的Microsoft Exchange服务器上设置垃圾邮件的过滤器。
我需要检查字母广告垃圾邮件,如果有标题"收到"超过3个点并且它不会包含单词" outlook"
可以通过正则表达式.*\..*\..*\..*
检查字符串是否包含单词" outlook"可以通过正则表达式((?!outlook).)*$
我尝试在一个表达式^(?=.*\..*\..*\..*)(?=((?!outlook).)*$)
中联合起来但不起作用:(
我做错了什么?
答案 0 :(得分:1)
您可以使用
^(?!.*outlook)[^.]*(?:\.[^.]*){0,2}$
请参阅regex demo
<强>详情
^
- 字符串开头(?!.*outlook)
- 行上任何位置都不允许outlook
子字符串[^.]*
- 除.
(?:\.[^.]*){0,2}
- 0,1或2次出现
\.
- 一个点[^.]*
- 除.
$
- 字符串结束。因此,任何字符串都将匹配,没有outlook
且只有0,1或2个点。
请注意,如果您有多行,则必须make .
match multiple lines。