import java.util.regex.*; public class regX { public static void main(String[] args){ String regex = "(?=.*?\\p{Upper})" + // 至少有一个大写字母 "(?=.*?\\d)" + // 至少有一个数字 "(?=.*?[-:;!\"£$%^&*()_+=|\\\\?,./{}\\[\\]~'<>¬`@])" + // 至少有一个特殊字符 ".{1,10}"; // 长度范围是1到10 Pattern p = Pattern.compile(regex); Matcher m = p.matcher("3333a33\\@33@33A3");// 测试字符串 System.out.println(m.matches()); } }
regex可以精简成一句,实现 符合 4个条件种任一条件的字符串都可以做密码。
String regex =
"(?=.*?\\p{Upper})|(?=.*?\\d)|(?=.*?[-:;!\"£$%^&*()_+=|\\\\?,./{}\\[\\]~'<>¬`@])|.{3,25}";
最后,推荐一个介绍正则表达式的网站http://www.regexlab.com/zh/
本文通过实例演示了如何使用正则表达式验证密码强度,并提供了一个简化版的正则表达式,该表达式能确保密码至少包含大写字母、数字或特殊字符之一,且长度在3到25个字符之间。
4507

被折叠的 条评论
为什么被折叠?



