正则表达式检查电子邮件ID

时间:2013-09-12 12:32:25

标签: java regex

我是regex的新手。 我正在使用正则表达式检查电子邮件ID。

以下是我的代码,以便<xyz@xyz.com>xyz@xyz.com

相匹配
Pattern p = Pattern.compile("\\<(.*?)\\>");
Matcher m = p.matcher("<xyz@xyz.com>");

它的工作正常。现在,我想将<xyz@xyz.com>[xyz@xyz.com]xyz@xyz.com匹配。

任何建议都将受到赞赏。

4 个答案:

答案 0 :(得分:1)

Pattern p = Pattern.compile("(<(.*?)>|\\[(.*?)])");

答案 1 :(得分:1)

Pattern p = Pattern.compile("[\\[\\<](.*?)[\\]\\>]");
Matcher m = p.matcher("[xyz@xyz.com]");
System.out.println(m.matches());

答案 2 :(得分:1)

首先<>不是正则表达式的特殊字符,因此您不必使用\

你的正则表达式应该是这样的:

"(<|\\])(.*?)\\1"但此正则表达式不会检查电子邮件地址是有效还是如果您想要控制电子邮件是否有效,您将使用此正则表达式:

"(<|\\])([\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]{2,4})\\1"

不应使用正则表达式进行电子邮件验证

答案 3 :(得分:1)

使用

Pattern p = Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
Matcher m = p.matcher("<abc@abc.com>");

参考 http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/