我有一个用于验证电子邮件输入字段的正则表达式。
[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!$%&'*+/=?^_`{|}~-]+)*(\\.)?@(?:[a-zA-Z0-9ÄÖÜäöü](?:[a-zA-Z0-9-_ÄÖÜäöü]*[a-zA-Z0-9_ÄÖÜäöü])?\\.)+[a-zA-Z]{2,}
现在,我希望此正则表达式与两种特定类型的电子邮件ID不匹配。分别是 wt.com 和 des.net
为此,我在上面的表达式中做了如下更改。
[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!$%&'*+/=?^_`{|}~-]+)*(\\.)?@(?!wt\\.com)(?!des\\.net)(?:[a-zA-Z0-9ÄÖÜäöü](?:[a-zA-Z0-9-_ÄÖÜäöü]*[a-zA-Z0-9_ÄÖÜäöü])?\\.)+[a-zA-Z]{2,}
在此之后,它与以wt.com和des.net结尾的任何电子邮件ID不匹配,该电子邮件ID正确。 但问题是它也与wt.comm或受限字符串后的任何其他字母都不匹配。 我只想限制以 wt.com 和 des.net 结尾的电子邮件 我怎么做? 以下是应匹配的电子邮件示例。
答案 0 :(得分:1)
如果您只想阻止后面没有字符的wt.com
和des.net
,则可以在末尾添加$
anchor(代表字符串的末尾)。每个否定的前瞻。
因此,使用(?!wt\\.com)(?!des\\.net)
代替(?!wt\\.com$)(?!des\\.net$)