java正则表达式-密码必须包含字母、数字、特殊字符,并不能填入空格,且长度在9-16之间
时间: 2024-10-01 07:05:59 浏览: 48
在Java中,使用正则表达式验证密码符合这种条件可以按照以下方式进行:
```java
import java.util.regex.Pattern;
public class PasswordValidator {
private static final String PASSWORD_PATTERN = "^(?=.*[a-zA-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{9,16}$";
public static boolean isValidPassword(String password) {
Pattern pattern = Pattern.compile(PASSWORD_PATTERN);
return pattern.matcher(password).matches();
}
public static void main(String[] args) {
System.out.println(isValidPassword("Password123!")); // 输出:true
System.out.println(isValidPassword("password")); // 输出:false (太短)
System.out.println(isValidPassword("Password with space")); // 输出:false (包含空格)
}
}
```
在这个例子中,`PASSWORD_PATTERN`定义了密码需要包含至少一个小写字母(`(?=.*[a-z])`)、至少一个大写字母(`(?=.*[A-Z])`)、至少一个数字(`(?=.*\d)`)以及至少一个特殊字符(`(?=.*[@$!%*?&])`),并且长度要在9到16个字符之间。
阅读全文