正则表达式匹配密码(字符串)
验证字符串至少由4种字符组成且长度大于等于8。
实例如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String input = "Abc12345#";
Pattern pattern = Pattern.compile("^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-])[A-Za-z0-9#?!@$%^&*-]{8,}$");
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
System.out.println("字符串符合要求");
} else {
System.out.println("字符串不符合要求");
}
}
}
在上面的代码中,我们使用了正则表达式^(?=.?[A-Z])(?=.?[a-z])(?=.?[0-9])(?=.?[#?!@
%^&*-])[A-Za-z0-9#?!@
%^&*-]{8,}$来验证字符串。
这个正则表达式的含义是:
- ^表示字符串的开头。
- (?=.*?[A-Z])表示必须包含至少一个大写字母。
- (?=.*?[a-z])表示必须包含至少一个小写字母。
- (?=.*?[0-9])表示必须包含至少一个数字。
- (?=.?[#?!@$%^&-])表示必须包含至少一个特殊字符。
- [A-Za-z0-9#?!@$%^&*-]{8,}表示可以包含大小写字母、数字和特殊字符,长度至少为8。
- $表示字符串的结尾。
如果字符串符合要求,那么matcher.matches()方法将返回true,否则返回false。