正则表达式识别@之后和.tld之前只有4个字符的电子邮件

时间:2012-09-14 10:07:09

标签: regex cpanel spam spamassassin

我们以femlmcte@tnbt.com的形式收到大量垃圾邮件。

我可以看到cPanel垃圾邮件刺客允许使用正则表达式匹配来过滤邮件。

我想写一个正则表达式来识别

形式的邮件
anylengthofstrring@abcd.com  

someotherlength@efgh.co.za

即只有四个字母之后<,> 之前 .com,.co.uk,.co.za等

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

[^@]+@[a-zA-Z]{4}\.(com|co\.uk|co\.za)

说明:

[^@]+@                # One or more characters except @ followed by @
[a-zA-Z]{4}           # Matches 4 characters in the range A-Z and a-z
\.(com|co\.uk|co\.za) # Matches .com, .co.uk, and .co.za

如果您想匹配任何tld,请将(com|co\.uk|co\.za)替换为.*(我假设您收到这些电子邮件后,您已经知道它们是有效的,因此无需验证TLD)。

另请注意,根据您当前的条件,您会将admin@food.com视为垃圾邮件,这可能是您想要的,也可能不是。

答案 1 :(得分:0)

所以你想要匹配一个符号后跟4个非点字符,然后是一个点?该规范很容易转换为正则表达式:

@[^.]{4}\.