java使用正则表达式校验字符串pwd,是否符合包含大写小写数字特殊字符长度超过8位

在Java中,你可以使用正则表达式来校验一个字符串(例如密码)是否符合特定的要求,比如包含大写字母、小写字母、数字和特殊字符,并且长度超过8位。以下是一个示例代码,展示了如何使用正则表达式来校验这样的密码:

java 复制代码
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class PasswordValidator {

    // 定义正则表达式,要求包含大写字母、小写字母、数字和特殊字符,且长度至少为9位(因为要求超过8位)
    private static final String PASSWORD_PATTERN = 
        "^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{9,}$";

    private static final Pattern pattern = Pattern.compile(PASSWORD_PATTERN);

    // 校验密码是否符合要求
    public static boolean validate(final String password) {
        Matcher matcher = pattern.matcher(password);
        return matcher.matches();
    }

    public static void main(String[] args) {
        // 测试密码
        String pwd = "Abc123!@#"; // 你可以修改这个密码来测试不同的输入

        if (validate(pwd)) {
            System.out.println("密码符合要求");
        } else {
            System.out.println("密码不符合要求");
        }
    }
}

在这个示例中,PASSWORD_PATTERN 是定义的正则表达式,它确保了密码:

  • 包含至少一个大写字母((?=.*[A-Z]))
  • 包含至少一个小写字母((?=.*[a-z]))
  • 包含至少一个数字((?=.*\\d))
  • 包含至少一个特殊字符(这里示例为 @$!%*?&,你可以根据需要调整)((?=.*[@$!%*?&]))
  • 长度至少为9位(因为要求超过8位,所以设置为 {9,})

validate 方法接受一个字符串作为参数,并使用 Pattern 和 Matcher 类来检查该字符串是否符合正则表达式定义的模式。如果匹配成功,则返回 true,否则返回 false。

在 main 方法中,我们测试了一个示例密码,并根据校验结果输出相应的消息。你可以修改 pwd 变量的值来测试不同的密码输入。

相关推荐
步行cgn2 分钟前
Spring AOP 切面的先后顺序详解
java·spring
阿钱真强道8 分钟前
25 嵌入式操作系统 | 设备面板:用 Qt 控件把“设备“画出来(本节不接串口)
开发语言·qt·flask·架构设计·协议契约
ym hyd 11125 分钟前
宝宝早教服务系统源码 Java+SpringBoot+Vue3 前后分离
java·开发语言·spring boot
看浪的路人34 分钟前
第7讲:实时告警与自动化响应
开发语言·后端·golang
自强的小白40 分钟前
微服务之间的依赖传递和调用(实体类的模块传递以及负载均衡的调用!)注册中心
java·微服务
她说彩礼65万1 小时前
C语言 单引号与双引号
java·服务器·c语言
知守观1 小时前
百万级数据导出OOM:POI的坑与EasyExcel的流式写入实战(附内存对比)
java·后端
“AI国潮设计-小江”1 小时前
Python实战 | SDXL批量生成“潮汕英歌舞”国潮甜品IP,附核心Prompt与商用授权思路
开发语言·人工智能·python·prompt·aigc
anew___1 小时前
《从零手写操作系统 (19):Ext2文件系统实战——从内存到磁盘的跨越》
java·服务器·前端·数据库·算法
H.莓飛1 小时前
【数据结构】栈
linux·开发语言·数据结构·算法·centos