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

ops/2024/10/30 18:41:07/

在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 方法接受一个字符串作为参数,并使用 PatternMatcher 类来检查该字符串是否符合正则表达式定义的模式。如果匹配成功,则返回 true,否则返回 false

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


http://www.ppmy.cn/ops/129662.html

相关文章

【Python】正则表达式

在Python中,正则表达式相关的函数主要定义在re模块中。以下是一些常用的正则表达式函数及其说明: 正则表达式基本语法 1. 元字符 . :匹配除换行符外的任何单个字符。 示例:a.b 可以匹配 acb、a1b 等。 ^ :匹配字符…

FreeRTOS 数据传输方法(环形buffer,队列的本质)队列实验—多设备玩游戏

数据传输方法 环形buffer 环形buffer的本质就是一个循环队列,但是有一些不同 空:当头指针和尾指针相等时,表示缓冲区为空。满:当尾指针的下一个位置等于头指针时,表示缓冲区已满(在环形结构中&#xff0c…

【界面改版】JimuReport 积木报表 v1.9.0 版本发布,填报优化和大屏能力

项目介绍 积木报表JimuReport,是一款免费的数据可视化报表,含报表、仪表盘和大屏设计,像搭建积木一样完全在线设计!功能涵盖:数据报表、打印设计、图表报表、门户设计、大屏设计等! Web版报表设计器&#x…

怎么理解ES6 Proxy

Proxy 可以理解成,在目标对象之前架设一层 “拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy 这个词的原意是代理,用在这里表示由它来 “代理…

Stream 的使用和基本原理

(2023年3月公司内部培训) Stream 的定义 Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。 对流的操作 Stream可以由数组或集合创建&am…

【Hive复杂数据类型和函数】全网总结最全的Hive函数

文章目录 一、复杂数据类型的建表语句1、array2、map3、struct 二、Hive函数1、炸裂函数explode(行转列)2、日期函数3、字符串函数4、类型转换函数5、其他函数6、窗口函数7、序列函数8、排名函数9、自定义函数 一、复杂数据类型的建表语句 1、array cr…

聊聊Web3D 发展趋势

随着 Web 技术的不断演进,Web3D 正逐渐成为各行业数字化的重要方向。Web3D 是指在网页中展示 3D 内容的技术集合。近年来,由于 WebGL、WebGPU 等技术的发展,3D 内容已经能够直接在浏览器中渲染,为用户提供更加沉浸、互动的体验。以…

【AIGC】2024-arXiv-Lumiere:视频生成的时空扩散模型

2024-arXiv-Lumiere: A Space-Time Diffusion Model for Video Generation Lumiere:视频生成的时空扩散模型摘要1. 引言2. 相关工作3. Lumiere3.1 时空 U-Net (STUnet)3.2 空间超分辨率的多重扩散 4. 应用4.1 风格化生成4.2 条件生成 5. 评估和比较5.1 定性评估5.2 …