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/