正则表达式
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
( # 组开始
(?=.*\d) # 必须包含一个数字 0-9
(?=.*[a-z]) # 必须包含一个小写字符
(?=.*[A-Z]) # 必须包含一个大写字符
(?=.*[@#$%]) # 必须包含一个列表中的特殊字符"@#$%"
. # 检查所有字符串与前面的条件的匹配
{6,20} # 长度至少为6个字符,最大长度为20
) # 组结束
public static void main(String[] args) {
String str = "g4hGg@gf";
Pattern p = Pattern.compile("((?=.*\\d)((?=.*[a-z])|(?=.*[A-Z]))(?=.*[@#$%]).{8,8})");
Matcher m = p.matcher(str);
boolean b = m.matches();
System.out.println(b);
}
相关文章
http://blog.csdn.net/pzpzpop/article/details/6920524