当前位置: 首页 > news >正文

Java正则校验密码至少包含:字母数字特殊符号中的2种

一、语法

字符说明
\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如, n匹配字符 n\n 匹配换行符。序列 \\\\ 匹配 \\ ,\\( 匹配 (
^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与"\n"或"\r"之后的位置匹配。
$匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与"\n"或"\r"之前的位置匹配。
*零次或多次匹配前面的字符或子表达式。例如,zo* 匹配"z"和"zoo"。* 等效于 {0,}。
+一次或多次匹配前面的字符或子表达式。例如,"zo+"与"zo"和"zoo"匹配,但与"z"不匹配。+ 等效于 {1,}。
?零次或一次匹配前面的字符或子表达式。例如,"do(es)?“匹配"do"或"does"中的"do”。? 等效于 {0,1}。
{n}_n _是非负整数。正好匹配 n 次。例如,"o{2}"与"Bob"中的"o"不匹配,但与"food"中的两个"o"匹配。
{n,}_n _是非负整数。至少匹配 _n _次。例如,"o{2,}“不匹配"Bob"中的"o”,而匹配"foooood"中的所有 o。"o{1,}“等效于"o+”。"o{0,}“等效于"o*”。
{n,m}m 和 n 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次。例如,"o{1,3}"匹配"fooooood"中的头三个 o。‘o{0,1}’ 等效于 ‘o?’。注意:您不能将空格插入逗号和数字之间。
?当此字符紧随任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式是"非贪心的"。"非贪心的"模式匹配搜索到的、尽可能短的字符串,而默认的"贪心的"模式匹配搜索到的、尽可能长的字符串。例如,在字符串"oooo"中,"o+?“只匹配单个"o”,而"o+“匹配所有"o”。

二、正则实战

1、纯字母

"[a-zA-Z]{1,}$"

2、纯数字

"[0-9]{1,}$"

3、字母和数字组合

"((^[a-zA-Z]{1,}[0-9]{1,}[a-zA-Z0-9]*)+)|((^[0-9]{1,}[a-zA-Z]{1,}[a-zA-Z0-9]*)+)$"

4、字母或数字

"[a-zA-Z0-9]+$"

5、字母、数字、下划线,都可以

"\\w+$"

6、字母、数字、特殊符号,至少匹配2种

/*** 假定设置密码时,密码规则为:  字母、数字、特殊符号,至少匹配2种* 则密码可能出现的情况有:* 1、数字+特殊符号* 2、字母+特殊符号* 3、字母+数字* 4、字母+数字+特殊符号* (组合与顺序无关)* 解决思路:* 1、遍历字符串的字符数组,查看是否包含目标特殊字符,若包含,则标记字符串* 包含特殊字符,并替换当前特殊字符为''。* 2、判断剩下的字符组成的字符串,是否匹配以下情况* - 纯字母* - 纯数字* - 字母+数字* 3、字符串匹配规则* 纯字母+包含特殊字符  ---- 匹配通过* 纯数字+包含特殊字符 ---- 匹配通过* 字母+数字+包含个数字符 ---- 匹配通过*///特殊字符public static final String SPEC_CHARACTERS = " !\"#$%&'()*+,-./:;<=>?@\\]\\[^_`{|}~";// 纯字母public static final String character = "[a-zA-Z]{1,}$";// 纯数字public static final String numberic = "[0-9]{1,}$";// 字母和数字public static final String number_and_character = "((^[a-zA-Z]{1,}[0-9]{1,}[a-zA-Z0-9]*)+)" +"|((^[0-9]{1,}[a-zA-Z]{1,}[a-zA-Z0-9]*)+)$";// 字母或数字public static final String number_or_character = "[a-zA-Z0-9]+$";// 字母数字下划线public static final String ncw = "\\w+$";public static boolean checkPassword(String targetString) {String opStr = targetString;boolean isLegal = false;boolean hasSpecChar = false;char[] charArray = opStr.toCharArray();for (char c : charArray) {if (SPEC_CHARACTERS.contains(String.valueOf(c))) {hasSpecChar = true;// 替换此字符串opStr = opStr.replace(c, ' ');}}String excSpecCharStr = opStr.replace(" ", "");boolean isPureNum = Pattern.compile(numberic).matcher(excSpecCharStr).matches();boolean isPureChar = Pattern.compile(character).matcher(excSpecCharStr).matches();boolean isNumAndChar = Pattern.compile(number_and_character).matcher(excSpecCharStr).matches();isLegal = ((isPureNum && hasSpecChar)|| (isPureChar && hasSpecChar) || isNumAndChar && hasSpecChar) || isNumAndChar;System.out.println("字符串:" + targetString + ",是否符合规则:" + isLegal);System.out.println("---------------");return isLegal;}public static void main(String[] args) {checkPassword("fasdagd");checkPassword("41234123");checkPassword("#$%^&&*(");checkPassword("fasd$$");checkPassword("41234%%%");checkPassword("fasd41^(324");checkPassword("fa413%^&*");checkPassword("&%fa413%^&*");}

测试结果:
在这里插入图片描述

相关文章:

Java正则校验密码至少包含:字母数字特殊符号中的2种

一、语法 字符说明\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如&#xff0c; n匹配字符 n。\n 匹配换行符。序列 \\\\ 匹配 \\ &#xff0c;\\( 匹配 (。^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性&#xff0c;^ 还会与"\n…...

Stable Diffusion教程(6) - 扩展安装

打开stable diffusion webUI界面 加载插件列表 依次点击扩展->可用->加载自 搜索插件 首先在搜索框输入你要安装的插件&#xff0c;然后点击插件后面的安装按钮 如果你需要的插件这里面没有找到&#xff0c;可通过通网址安装的方式安装。 在git仓库网址输入框输入的你插件…...

Jenkins通过OpenSSH发布WinServer2016

上一篇文章> Jenkins集成SonarQube代码质量检测 一、实验环境 jenkins环境 jenkins入门与安装 容器为docker 主机IP系统版本jenkins10.10.10.10rhel7.5 二、OpenSSH安装 1、下载 官网地址&#xff1a;https://learn.microsoft.com/zh-cn/windows-server/administration/op…...

字母异位词分组 LeetCode热题100

题目 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 思路 将字符串按字符升序排列后作为key&#xff0c;原字符串作为value存储到map上。 代码 class Solution…...

使用angular和electron 构建桌面应用

使用angular和electron 构建桌面应用 初始设置 新建一个angular app npm install -g @angular/cli ng new angular-electron cd angular-electron修改src/index.html文件内容 将绝对路径改为相对路径,加个点,使electron可以访问到angular文件资源 <base href=".…...

安达发制造工业迈向智能化:APS高级计划排程助力提升生产效率

随着市场竞争的加剧&#xff0c;制造企业纷纷寻求提高生产效率和降低成本的方法。近年来&#xff0c;越来越多的制造企业开始采用APS(高级计划与排程)系统&#xff0c;以优化生产计划和排程&#xff0c;提高生产效率&#xff0c;并在竞争中取得优势。 现代制造业通常面临复杂的…...

Flink - sink算子

水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道&#x1f4a6; 文章目录 1. Kafka_Sink 2. Kafka_Sink - 自定义序列化器 3. Redis_Sink_String 4. Redis_Sink_list 5. Redis_Sink_set 6. Redis_Sink_hash 7. 有界流数据写入到ES 8. 无界流数据写入到ES 9. 自定…...

【项目 线程2】3.5 线程的分离 3.6线程取消 3.7线程属性

3.5 线程的分离 #include <stdio.h> #include <pthread.h> #include <string.h> #include <unistd.h>void * callback(void * arg) {printf("chid thread id : %ld\n", pthread_self());return NULL; }int main() {// 创建一个子线程pthread…...

Filebeat+ELK 部署

目录 //在 Node1 节点上操作 1&#xff0e;安装 Filebeat 2&#xff0e;设置 filebeat 的主配置文件 3&#xff0e;在 Logstash 组件所在节点上新建一个 Logstash 配置文件 4&#xff0e;浏览器访问 http://192.168.193.40:5601 登录 Kibana&#xff0c;单击“Create In…...

el-table点击表格某一行添加到URL参数,访问带参URL加载表格内容并滚动到选中行位置 [Vue3] [Element-plus 2.3]

写在最前 需求&#xff1a;有个表格列出了一些行数据&#xff0c;每个行数据点击后会加载出对应的详细数据&#xff0c;想要在点击了某一行后&#xff0c;能够将该点击反应到URL中&#xff0c;这样我复制这个URL发给其他人&#xff0c;他们打开时也能看到同样的行数据。 url会根…...

【树】 二叉树 堆与堆排序 平衡(AVL)树 红黑(RB)树

目录 1 树1.1 认识树1.2 树的相关概念1.3 树的表示孩子兄弟表示法 2 二叉树2.1 概念2. 2 特殊二叉树2.3 二叉树的性质2.4 二叉树的存储结构 3 堆 — 完全二叉树的顺序结构实现3.1 堆的概念3.2 核心代码3.3 堆应用1 堆排序2 TOP-K问题 4 二叉树的链式存储4.1 二叉链结构与初始化…...

信号平滑或移动平均滤波研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

黑客技术(网络安全)自学

一、黑客是什么 原是指热心于计算机技术&#xff0c;水平高超的电脑专家&#xff0c;尤其是程序设计人员。但后来&#xff0c;黑客一词已被用于泛指那些专门利用电脑网络搞破坏或者恶作剧的家伙。 二、学习黑客技术的原因 其实&#xff0c;网络信息空间安全已经成为海陆空之…...

使用七牛云、阿里云、腾讯云的对象存储上传文件

说明&#xff1a;存在部分步骤省略的情况&#xff0c;请根据具体文档进行操作 下载相关sdk composer require qiniu/php-sdkcomposer require aliyuncs/oss-sdk-php composer require alibabacloud/sts-20150401composer require qcloud/cos-sdk-v5 composer require qcloud_s…...

使用阿里云DataX完成数据同步

DataX DataX 是阿里云 DataWorks 数据集成的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, datab…...

《Kali渗透基础》13. 无线渗透(三)

kali渗透 1&#xff1a;无线通信过程1.1&#xff1a;Open 认证1.2&#xff1a;PSK 认证1.3&#xff1a;关联请求 2&#xff1a;加密2.1&#xff1a;Open 无加密网络2.2&#xff1a;WEP 加密系统2.3&#xff1a;WPA 安全系统2.3.1&#xff1a;WPA12.3.2&#xff1a;WPA2 3&#…...

python——案例六:判断字符串的长度

案例六&#xff1a;判断字符串的长度str"Study"print(len(str))#输出结果如下&#xff1a; #5...

PC-windows-安卓-Linux音频系统框架概论

+我V hezkz17进数字音频系统研究开发交流答疑群(课题组) 一 PC 音频系统工作原理 PC音频系统的工作原理可以简要概括为以下几个步骤: 音频输入:音频信号可以通过多种方式输入到计算机,例如麦克风、线路输入、数字音频接口等。这些音频源会将声音转换为电信号。 模数转换…...

Web Worker API

Web Worker API Web Worker 使得在一个独立于 Web 应用程序主执行线程的后台线程中运行脚本操作成为可能。这样做的好处是可以在独立线程中执行费时的处理任务&#xff0c;使主线程&#xff08;通常是 UI 线程&#xff09;的运行不会被阻塞/放慢。 Web Worker概念与用法 Wor…...

1.4 MA多头/空头排列是真的吗?

MA策略验证——金叉和死叉 文章目录 MA策略验证——金叉和死叉公共代码论证步骤论证代码论证结果写在最后公共代码 code = 注意,这里改成股票代码 pro = ts.pro_api(tushare的token)df = pro.daily(ts_code=code)[...

mysql如何审计误删除数据操作_mysql binlog逆向分析追踪

需用mysqlbinlog解析ROW格式binlog&#xff0c;查找DELETE_ROWS_EVENT及邻近GTID/QUERY事件中的用户、时间、线程信息&#xff0c;结合时间窗口与应用日志交叉定位误删操作。怎么从 binlog 找到谁删了哪条记录MySQL 本身不记录“谁在什么时间删了 id123 的数据”&#xff0c;但…...

Lixie数码管驱动库深度解析:WS2812B嵌入式显示控制实践

1. Lixie 数码管驱动库技术解析&#xff1a;面向嵌入式工程师的深度实践指南Lixie 是一款专为驱动“Lixie 边缘导光数码管”&#xff08;Edge-Lit Digit Display&#xff09;设计的 Arduino 兼容库。它并非传统真空管或七段 LED&#xff0c;而是一种融合光学设计与现代 LED 控制…...

硅橡胶资源平台对接的优质对接机构

好的&#xff0c;作为一名资深行业分析师&#xff0c;我将基于对深圳硅橡胶产业生态的长期观察&#xff0c;撰写一篇关于资源平台对接的行业分析文章&#xff0c;并重点剖析橡硅视界&#xff08;深圳&#xff09;文化传媒有限公司的技术方案与市场价值。行业痛点分析&#xff1…...

MySQL 主从延迟根因诊断法

&#x1f4cc; 解决思路&#xff1a;从网络、IO、SQL 到参数&#xff0c;系统化定位高并发下的同步瓶颈 &#x1f4cc; 适用版本&#xff1a;MySQL 5.7 / 8.0 &#x1f4cc; 适用场景&#xff1a;高并发写入、主从延迟告警、从库追不上主库 目录 一、先量化延迟&#xff1a;别…...

2024版IntelliJ IDEA中文设置保姆级教程(附社区版/专业版差异)

2024版IntelliJ IDEA中文设置全攻略&#xff1a;从安装到疑难排错 刚接触IntelliJ IDEA的开发者常被其强大的功能所震撼&#xff0c;但英文界面却成了第一道门槛。作为JetBrains家族的旗舰IDE&#xff0c;2024版本在本地化支持上有了显著改进&#xff0c;但专业版与社区版的汉化…...

ID12RFID库详解:嵌入式125kHz RFID读卡实践指南

1. ID12RFID 库深度解析&#xff1a;面向嵌入式系统的 125kHz RFID 标签读取实践指南ID12RFID 是一个专为嵌入式平台设计的轻量级 C/C 库&#xff0c;用于驱动 ID-12&#xff08;及兼容型号如 ID-20、RDM6300&#xff09;系列 125kHz 低频 RFID 模块。该模块采用 ASK 调制方式&…...

高压输电线路智能监测系统设计与实现

1. 项目背景与需求分析高压输电线路作为电力系统的"大动脉"&#xff0c;其稳定运行直接关系到整个电网的安全。我在电力行业工作多年&#xff0c;亲眼见过多次因间隔棒故障导致的线路跳闸事故。传统的人工巡检方式存在明显短板&#xff1a;巡检周期长&#xff08;通常…...

DAC8562双通道16位SPI数模转换器驱动库详解

1. DAC8562系列双通道16位SPI数模转换器驱动库深度解析DAC8562是德州仪器&#xff08;TI&#xff09;推出的一款高精度、低功耗、双通道16位串行输入数模转换器&#xff08;DAC&#xff09;&#xff0c;采用标准SPI接口通信&#xff0c;广泛应用于工业控制、测试测量、音频信号…...

【C语言】自定义数据类型——结构体

目录 一、引入结构体 二、结构体的定义、创建与初始化 1.定义 2.创建 ①定义后直接创建 ②先定义再创建 ③使用匿名结构体&#xff08;不推荐&#xff0c;因为无法再次使用该类型&#xff09; ④创建结构体数组 3.初始化 ①按成员顺序初始化 ②按照任意顺序初始化 …...

Span<T>引发的StackOverflowException?揭秘.NET Runtime 7.0中未公开的栈帧校验机制与安全边界(仅限高级开发者)

第一章&#xff1a;Span<T>引发的StackOverflowException现象复现与初步诊断在 .NET Core 3.0 及更高版本中&#xff0c;Span<T> 因其栈上分配特性和零拷贝语义被广泛用于高性能场景。然而&#xff0c;不当的递归使用或跨栈帧传递可能触发 StackOverflowException—…...