符合RFC电子邮件的验证的正则表达式

时间:2016-02-15 17:25:59

标签: c# regex email

根据此article(几乎在其末尾),使用以下正则表达式将验证RFC 5322下的任何电子邮件

但它根本不起作用。有人能查看这个表达中的错误吗?

A(?=[a-z0-9@.!#$%&'*+/=?^_`{|}~-]{6,254}\z)
  (?=[a-z0-9!#$%&'*+/=?^_`{|}~-]{1,64}@)
  [a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*
@ (?:(?=[a-z0-9-]{1,63}\.)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+
  (?=[a-z0-9-]{1,63}\z)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

我尝试使用regex101.com或其他测试人员,但我无法使其正常工作。

1 个答案:

答案 0 :(得分:0)

使用WinMerge *比较您的版本和文章中的版本。差异应该是明确的:)

您从一开始就错过了\,最后错过了\z

\A(?=[a-z0-9@.!#$%&'*+/=?^_`{|}~-]{6,254}\z)
  (?=[a-z0-9!#$%&'*+/=?^_`{|}~-]{1,64}@)
  [a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*
@ (?:(?=[a-z0-9-]{1,63}\.)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+
  (?=[a-z0-9-]{1,63}\z)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\z

*其他差异工具可用