Java中的电子邮件validation的正则表达式

我正在使用下面的正则表达式

(".+@.+\\.[az]+") 

它接受#@#.com作为有效的电子邮件。 我应该使用什么样的模式?

您应该使用apache-commons电子邮件validation程序。 你可以从这里获取jar文件。

这是一个如何使用它的简单示例:

 import org.apache.commons.validator.routines.EmailValidator; boolean isValidEmail = EmailValidator.getInstance().isValid(emailAddress); 

这是一个可以比我更好地解释的网页: http : //www.regular-expressions.info/email.html ( 编辑 :由于它引用了已被取代的RFC 2822,因此看起来有点过时了通过RFC 5322)

另一个对validation问题有一个有趣的看法: http : //www.markussipila.info/pub/emailvalidator.php

通常,validation电子邮件地址的最佳策略是尝试向其发送邮件。

如果有人想输入不存在的电子邮件地址,他会按照您选择的格式validation进行操作。

检查用户是否拥有他输入的电子邮件的唯一方法是向该地址发送确认(或激活)链接,并要求用户单击该地址。

因此,不要试图让用户的生活更难。 检查@存在是否足够好。

[A-Z0-9 ._%+ – ] + @ [A-Z0-9 .-] + [AZ] {2,4}

我通常使用以下一个:

 ([a-zA-Z0-9]+(?:[._+-][a-zA-Z0-9]+)*)@([a-zA-Z0-9]+(?:[.-][a-zA-Z0-9]+)*[.][a-zA-Z]{2,}) 
 import java.util.regex.*; class ValidateEmailPhone{ public static void main(String args[]){ //phone no validation starts with 9 and of 10 digit System.out.println(Pattern.matches("[9]{1}[0-9]{9}", "9999999999")); //email validation System.out.println(Pattern.matches("[a-zA-Z0-9]{1,}[@]{1}[az]{5,}[.]{1}+[az]{3}", "abcd@gmail.com")); } }