我必须为匹配的密码验证创建一个正则表达式
例如。
abcdABCD1234$%^
密码必须至少包含两个小写字母、两个大写字母、两个数字和两个特殊字符。但他们可以给出的不仅仅是这个标准
注意模式应该是有序的。
String pattern="(?=.*[a-z]{2,})(?=.*[A-Z]{2,})(?=.*[0-9]{2,})(?=.*[@#$%&]{2,})";
它对我有用,但它不检查顺序意味着 AB 大写或任何字符不应出现在 ab(小写)之前。
对你来说清楚吗?
String minNum="4";
String max="20";
String REGEX="(^(?!.*(d))(?=.*[a-z]{3,})(?=.*[A-Z]{2,})(?=.*[0-9]{3,})(?=.[@#$%&*><?+]{2,})^(?!.*(#r)).{"+minNum+","+max+"})";
//String regex="(?=.*[a-z]{2,})(?=.*[A-Z]{2,})(?=.*[0-9]{2,})(?=.*[@#$%&]{2,})";
String INPUT ="acABC1333323@#";
Pattern p = Pattern.compile(REGEX);
Matcher m = p.matcher(INPUT);
System.out.println(m.matches());
它工作正常,但是当我更改密码“ABac1333323@#”时;它也匹配,但根据我的要求它是正确的,因为 AB 是一阶。