正则表达式拒绝特定的电子邮件
我试图编写一个正则表达式来匹配电子邮件,以便拒绝两个电子邮件地址test@testdomain.com
和tes2@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
@
以匹配test
和tes2
作为完整的用户名:
^(?!test@|tes2@)[A-Za-z0-9._%+-]+@testdomain.com$
^ ^
请记住也要避开一个点。 查看正则表达式演示。
但是,您可能希望对用户名部分的限制较少,只需使用S+
而不是您的字符类:
^(?!test@|tes2@)S+@testdomain.com$
^^^
看另一个正则表达式演示。 S+
模式匹配除空白字符以外的任何一个或多个字符。