以下示例使用
String类的matches()方法来验证电子邮件地址。String.matches() 这个方法主要是返回是否匹配指定的字符串,如果匹配则为true,否则为false。
package regex.test;
/**
* description:验证电子邮件地址
* @auther :jiangtoa.tian
* @date :2019-02-26 15:46
*/
public class ValidateEmailFormat {
public static void main(String[] args) {
//String EMAIL_REGEX = "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$"; //正则表达式1
String EMAIL_REGEX ="\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"; //正则表达式2
String email1 = "admin@admin.com";
boolean b = email1.matches(EMAIL_REGEX);
System.out.println("email:" + email1 +" : valid = "+b);
String email2 = "admin&admin.com";
boolean b2 = email2.matches(EMAIL_REGEX);
System.out.println("email:" + email2 +" : valid = "+b2);
}
}
上述代码示例将产生以下结果:email:admin@admin.com : valid = true
email:admin&admin.com : valid = false
代码实际上并不长,关键点是其中所使用的正则表达式.在代码中使用了两个正则表达式:
- "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$"
- "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"
都可以正确验证邮箱格式,所以说正则表达式并不是唯一的,关键是要能明白正则表达式的语法.
对照语法表就能大致读懂正则表达式匹配的内容.
注:在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。在 Java 中正则表达式中则需要有两个反斜杠才能被解析为其他语言中的转义作用。这也就是为什么表示任一字符的正则表达式是 \\w.
No comments:
Post a Comment