1

我是正则表达式的新手。我正在使用正则表达式检查电子邮件 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

4 回答 4

1
Pattern p = Pattern.compile("(<(.*?)>|\\[(.*?)])");
于 2013-09-12T12:36:04.973 回答
1
Pattern p = Pattern.compile("[\\[\\<](.*?)[\\]\\>]");
Matcher m = p.matcher("[xyz@xyz.com]");
System.out.println(m.matches());
于 2013-09-12T12:36:17.527 回答
1

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

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

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

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

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

于 2013-09-12T12:43:04.297 回答
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/

于 2013-09-12T12:47:37.717 回答