正则表达式 - 对于电子邮件垃圾邮件过滤,匹配原始邮件地址变体

时间:2014-07-21 01:41:48

标签: regex

我是电子邮件垃圾邮件隔离区管理员,我可以编写正则表达式规则来阻止电子邮件。电子邮件垃圾邮件存在一个常见的分类,即我们的域名,因此任何电子邮件地址的用户名都会在其他域名之前被欺骗。

例如,假设我的电子邮件地址是jwclark@domain.com。在这种情况下,垃圾邮件发送者正在从我的用户名开头的各种其他域中写信给我,如:

jwclark1234@whatever.com
jwclark@wrongdomain.com
jwclark@a.domain.com

如何编写正则表达式规则以匹配包括jwclark和任何通配符在内的所有内容,但与原始jwclark@domain.com不匹配?除了我的实际示例电子邮件地址jwclark@domain.com之外,我想要一个匹配上述所有内容的正则表达式。

1 个答案:

答案 0 :(得分:3)

我已经制作了这个正则表达式here

^jwclark.*[@](?!domain\.com).*$

它是javascript格式,但应该很容易适应php或其他东西。

考虑到你的问题的性质,你可能最好制作一个正则表达式构建器函数,根据参数为你提供正确的正则表达式。

或者,实际上使用不同的方法。我最近发现了如何使用regexp解析浮点数的范围,但这并不能使它成为在范围内查找数字的正确解决方案。 :P

编辑 - 由于zx81

,修复了愚蠢的冗余

编辑 - 更改以符合奇怪的限制:

^jwclark.{0,25}[@][^d][^o][^m][^a][^i][^n].{0,25}\.com.{0,25}$

demo for the strange one