使用正则表达式进行Java电子邮件地址验证

使用正则表达式进行Java电子邮件地址验证,java,Java,我正在尝试设置电子邮件地址输入的常规Expersion验证 我有一个java类来进行验证: public class EmailValidator implements Validator { @Override public void validate(FacesContext facesContext, UIComponent uIComponent, Object value) throws ValidatorException { //Get the component's con

我正在尝试设置电子邮件地址输入的常规Expersion验证

我有一个java类来进行验证:

public class EmailValidator implements Validator {

@Override
public void validate(FacesContext facesContext, 
UIComponent uIComponent, Object value) throws ValidatorException {

//Get the component's contents and cast it to a String
String enteredEmail = (String)value;

//Set the email pattern string
Pattern p = Pattern.compile(".+@.+\\.[a-z]+");

//Match the given string with the pattern
Matcher m = p.matcher(enteredEmail);

//Check whether match is found
boolean matchFound = m.matches();

if (!matchFound) {
    FacesMessage message = new FacesMessage();
    message.setDetail("Email not valid - The email must be in the format yourname@yourdomain.com");
    message.setSummary("Email not valid - The email must be in the format yourname@yourdomain.com");
    message.setSeverity(FacesMessage.SEVERITY_ERROR);
    throw new ValidatorException(message);
}
}
}
这段代码中有一个默认模式。然而,我试图用另一种模式来代替它

模式:


/^(?:(?:(?:[^@,[]\x5c\x00-\x20\x7f-\xff.]\x5c(?=[@,[]\x5c\x00-\x20\x7f-\xff])(?:[^@,[]\x5c\x00-\x20\x7f-\xff])(?:[^@,[]\x5c\x00-\x20\x7f-\xff])|(?我确信可以使用regex,但您必须将其正确插入代码中。然而,检查电子邮件是否有效的最佳方法是发送电子邮件。这是一个使用regex验证电子邮件的好网站,当然您可以随时搜索此网站以查找许多类似的问题。

我确信可以使用regex,但您必须e以正确地将其插入代码中。但是,检查电子邮件是否有效的最佳方法是发送电子邮件。这是一个使用regex进行电子邮件验证的好网站,当然,您可以随时搜索此网站以查找许多类似的问题。

如果您尝试进行电子邮件验证,此模式有效且短得多
^[a-z0-9![a-z0-9![a-z0-9!][a-z0-9!][a-z0-9!][a-z0-9!][a-z0-9%&][a-z0-9-][a-z0-9]([a-z0-9-][a-z0 9-][a-z0 a-9-][a-z0 a-9-][a-z0 a-z0 9-][a-z0 a-9-][a-z0 a-z0 a-9-][a-z0 a-9-][a-z0

我使用java的正则表达式util包(
java.util.regex.*
),下面是关于它的文档以及java中的正则表达式:


如果您试图进行电子邮件验证,此模式有效且短得多。
^[a-z0-9!\$%&*+/=?^-+(?:\.[a-z0-9!\$%&'*+/=?^[a-z0-9]+++-]*:[a-z0-9](?:[a-z0-9-].[a-z0-9]-]

我使用java的正则表达式util包(
java.util.regex.*
),下面是关于它的文档以及java中的正则表达式:

您可以使用该正则表达式(或任何您想要的正则表达式),但请记住在java字符串中删除反斜杠
\
(通过输入两个
\

是一个允许您将正则表达式字符串转换为Java字符串的页面,也就是说,它可以为您完成所有奇怪字符的转义…(页面现在似乎已关闭,但昨天还在运行,所以请稍后登录…)

您可以使用该正则表达式(或任何您想要的)但是请记住在java字符串中删除反斜杠
\
(通过输入两个
\\


是一个允许您将正则表达式字符串转换为Java字符串的页面,也就是说,它为您完成所有奇怪字符的转义…(页面现在似乎已关闭,但昨天还在运行,所以请稍后登录…)

您也可以使用发件人。

您也可以使用发件人。

您可以使用此表达式进行电子邮件验证“[A-Za-z]+@+[A-Za-z]+\.+[A-Za-z]{2,4}+$”
这样做要简单得多。

您可以使用此表达式进行电子邮件验证“[A-Za-z]+@+[A-Za-z]+\.+[A-Za-z]{2,4}+$”
这样做要简单得多。

请试试这个,对我来说效果很好

String expressionForEmail = "^[\\w\\.-]+@([\\w\\-]+\\.)+[a-zA-Z]{2,4}$";

请试试这个,我觉得很好用

String expressionForEmail = "^[\\w\\.-]+@([\\w\\-]+\\.)+[a-zA-Z]{2,4}$";

你用这个模式干什么?你用这个模式干什么?所以我所要做的就是全部转义/和\?如果我只转义“/”它不起作用我修改了正则表达式来为java工作,只需遵循我给你的文档,你应该能够毫无问题地完成它。所以我所要做的就是全部转义/和\?如果我只转义“/“它不起作用我修改了正则表达式使其适用于java,只需遵循我给你的文档,你应该能够毫无问题地完成它。该正则表达式不会验证所有有效的电子邮件地址。该正则表达式不会验证所有有效的电子邮件地址。