java 正则判断密码至少包含大小字母数字特殊字符三种以上
时间: 2023-08-06 20:01:47 浏览: 72
可以使用正则表达式来判断密码至少包含大小写字母、数字和特殊字符三种以上。具体的正则表达式如下:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}[\]:;"'<>,.?/|]).{8,}$
解释一下:
- ^ 表示匹配字符串的开头。
- (?=.*[a-z]) 表示后面必须包含至少一个小写字母。
- (?=.*[A-Z]) 表示后面必须包含至少一个大写字母。
- (?=.*\d) 表示后面必须包含至少一个数字。
- (?=.*[~!@#$%^&*()_+`\-={}[\]:;"'<>,.?/|]) 表示后面必须包含至少一个特殊字符。
- .{8,} 表示密码长度至少为8个字符。
- $ 表示匹配字符串的结尾。
可以使用 Java 的 Pattern 类和 Matcher 类来进行正则匹配,示例代码如下:
```java
import java.util.regex.*;
public class PasswordValidator {
public static boolean validate(String password) {
String regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[~!@#$%^&*()_+`\\-={}\\[\\]:;\"'<>,.?/|]).{8,}$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(password);
return matcher.matches();
}
public static void main(String[] args) {
String password = "Abc123!@#";
if (validate(password)) {
System.out.println("密码符合要求");
} else {
System.out.println("密码不符合要求");
}
}
}
```