public static boolean isEmail2(String email){
if (null==email || "".equals(email)){
return false;
}
String regEx1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern p = Pattern.compile(regEx1);
Matcher m = p.matcher(email);
if(m.matches()){
return true;
}else{
return false;
}
}
正则表达式释义博文:链接
compile方法:创建一个用于匹配的母串
matcher方法:输入进行匹配的字符串
matches方法:进行匹配
分块进行解读:
^:匹配输入字符串的开始位置。
[a-z0-9A-Z]:匹配字母大小写以及数字0-9
[-|\.]?:"|" == “or” “\.” == “.”(\表示转义) “?” == 中括号中的字符可以出现0或1次,完整的意思是"-“或者”."可以出现0或1次
[a-z0-9A-Z]@:字母大小写以及数字0-9后跟@
([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.):字母大小写以及数字0-9后可跟 “-字母大小写以及数字0-9”
\.: “.”
[a-zA-Z]{2,}:字母大小写至少出现两位
$:匹配输入字符串的结束位置
测试代码:
public static void main(String[] args) {
String regEx1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
//String regEx1 = "^([-|\\.]?)$";
Pattern p = Pattern.compile(regEx1);
Matcher m = p.matcher("asad-sas@q-qq.com");
if(m.matches()){
System.out.println(true);
}else{
System.out.println(false);
}
}