我有一个现有的正则表达式来验证电子邮件输入字段。
[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 结尾的电子邮件ID不匹配,des.net 是正确的。 但问题是它与 wt.comm 或受限制字符串后的任何其他字母也不匹配。 我只想限制以wt.com结尾的电子邮件,des.net我该怎么做? 以下是应该匹配或不匹配的示例电子邮件。
- ajcom@wt.com : 无匹配项
- ajcom@aa.安:匹配
- ajcom@wt.coms :match
- ajcom@des.net : 无匹配
- ajcom@des.neta:匹配
如果你想只防止后面没有字符的wt.com
和des.net
,你可以在每个负面前瞻的末尾添加$
锚点(表示字符串的结尾(。
因此,与其使用(?!wt\.com)(?!des\.net)
(?!wt\.com$)(?!des\.net$)