1. 校验代码

  • 匹配正则

String passwd = "rqbkjhrjqh1111@!45";
String regex = "^[A-Za-z]|[0-9]|[!@#$%^&*]{6,18}$";

if(!passwd .matches(regex)){
    return false; //与正则不匹配
}
  • 是否包含

String passwd = "rqbkjhrjqh1111@!45";
String regex = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。 ,、?]";

Matcher matcher = Pattern.compile(regex).matcher(passwd);
if (!matcher.find()) {
    return false;// 不包含特殊字符
}

2. matcher.matches() / .find() 区别

  • matcher.find()用于在字符串中查找任何匹配的子序列,可以进行多次调用以查找所有匹配项。

  • matcher.matches()用于判断整个字符串是否完全匹配正则表达式。