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

Java中电子邮件验证的正则表达式,java,regex,email-validation,Java,Regex,Email Validation,我正在使用下面的正则表达式 (".+@.+\\.[a-z]+") Bit接受#@#com作为有效电子邮件。我应该使用什么样的模式?这是一个比我更好地解释这一点的网页:(编辑:这似乎有点过时,因为它指的是RFC 2822,它已被RFC 5322取代) 还有一个关于验证问题的有趣观点: 通常,验证电子邮件地址的最佳策略是尝试向其发送邮件。您应该使用apache commons电子邮件验证程序。您可以从中获取jar文件 下面是如何使用它的一个简单示例: import org.apache.commo

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

(".+@.+\\.[a-z]+")

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

这是一个比我更好地解释这一点的网页:(编辑:这似乎有点过时,因为它指的是RFC 2822,它已被RFC 5322取代)

还有一个关于验证问题的有趣观点:


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

您应该使用apache commons电子邮件验证程序。您可以从中获取jar文件

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

import org.apache.commons.validator.routines.EmailValidator;

boolean isValidEmail = EmailValidator.getInstance().isValid(emailAddress);

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

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


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

我通常使用以下方法:

([a-zA-Z0-9]+(?:[.+-][a-zA-Z0-9]+)*)@([a-zA-Z0-9]+(?:[.-][a-zA-Z0-9]+)*[.][a-zA-Z]{2,})

[A-Z0-9.+-]+@[A-Z0-9.-]+.[A-Z]{2,4}

电子邮件验证没有好的、现实的正则表达式。语法(在RFC5322中指定)太复杂,无法实现。雅虎有多大!?他们无法正确检查电子邮件地址语法,您也无法。这个问题每个月至少要问一次
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}[a-z]{5,}[.]{1}+[a-z]{3}", "abcd@gmail.com"));
    }
}