正则表达式拒绝特定的电子邮件

我试图编写一个正则表达式来匹配电子邮件,以便拒绝两个电子邮件地址test@testdomain.comtes2@testdomain.com并匹配来自特定域的所有其他电子邮件地址。 到目前为止,我已经做出如下模式:

^(?!test@testdomain.com|tes2@testdomain.com)|(A-Z0-9)[A-Z0-9._%+-]+@testdomain.com$

到目前为止,它能够拒绝我想阻止的主要电子邮件地址,但它通过它接受所有其他字符串。 作为替代,我写了以下正则表达式:

^(?!test|tes2)[A-Z0-9._%+-]+@testdomain.com$

但是,这会拒绝所有以测试或tes2开头的模式。

什么是更好的正则表达式来实现这个场景?


“修复”你的正则表达式,你需要确保你也在先行模式中test @以匹配testtes2作为完整的用户名:

^(?!test@|tes2@)[A-Za-z0-9._%+-]+@testdomain.com$
        ^     ^

请记住也要避开一个点。 查看正则表达式演示。

但是,您可能希望对用户名部分的限制较少,只需使用S+而不是您的字符类:

^(?!test@|tes2@)S+@testdomain.com$
                ^^^

看另一个正则表达式演示。 S+模式匹配除空白字符以外的任何一个或多个字符。

链接地址: http://www.djcxy.com/p/16529.html

上一篇: Regex to reject specific email

下一篇: Regular expression for the multiple email address