我是正则表达式的新手。我正在使用正则表达式检查电子邮件 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
任何建议将不胜感激。
Pattern p = Pattern.compile("(<(.*?)>|\\[(.*?)])");
Pattern p = Pattern.compile("[\\[\\<](.*?)[\\]\\>]");
Matcher m = p.matcher("[xyz@xyz.com]");
System.out.println(m.matches());
首先<
或>
不是正则表达式的特殊字符,因此您不必使用 \
你的正则表达式应该是这样的:
"(<|\\])(.*?)\\1"
但是这个正则表达式不会检查电子邮件地址是否有效,如果你想控制电子邮件是否有效,你将使用这个正则表达式:
"(<|\\])([\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]{2,4})\\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/