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

Regex 正则表达式用于识别@之后和之前只有4个字符的电子邮件.tld,regex,cpanel,spam,spamassassin,Regex,Cpanel,Spam,Spamassassin,我们在表单中收到很多垃圾邮件femlmcte@tnbt.com. 我可以看到cPanel垃圾邮件刺客允许使用正则表达式匹配来过滤邮件 我想写一个正则表达式来标识表单中的邮件 anylengthofstrring@abcd.com 或 i、 e@后面只有四个字母,但在.com、.co.uk、.co.za等之前请尝试以下操作: [^@]+@[a-zA-Z]{4}\.(com|co\.uk|co\.za) 说明: [^@]+@ # One or more char

我们在表单中收到很多垃圾邮件femlmcte@tnbt.com.

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

我想写一个正则表达式来标识表单中的邮件

anylengthofstrring@abcd.com  

i、 e@后面只有四个字母,但在.com、.co.uk、.co.za等之前请尝试以下操作:

[^@]+@[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,这可能是您想要的,也可能不是您想要的。

那么您想要匹配一个at符号,后跟4个非点字符,后跟一个点?此规范可轻松转换为regexp:

@[^.]{4}\.

到目前为止,你自己都做了些什么=那么所有来自中国的非垃圾邮件呢anylengthofstrring@abcd.com? 我不会将来自四个字母域的所有内容都标记为垃圾邮件;您可以创建一个分数有限的规则,例如一个,并希望有问题的邮件将有足够的其他垃圾邮件标记使分数高于阈值。这是SpamAssassin工作原理的基础。考虑超过三个顶级域名的可能性…史蒂恩:是的,但我认为OP不想和这些相匹配。我想他只认为这三个域名是spam.OP说的etc,所以我认为他的意思不仅仅是那些顶级域名。在任何情况下,只要考虑它。@ J.Stay:你是对的,我没有看到,等等。我已经编辑了我的答案来反映这一点。@乔-奥西尔瓦-谢谢你花时间解释语法。J.Steen-我以“^\w+@[a-zA-Z\+?\[a-zA-Z]{2,3}$作为识别电子邮件格式的标准-在尝试之前,我已经想好了:谢谢。我们的计划是看看我们是否可以过滤这些邮件,然后检查过滤器以捕获任何碰巧匹配的“真实”邮件。
@[^.]{4}\.