iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何利用Java正则表达式校验密码规则
  • 790
分享到

如何利用Java正则表达式校验密码规则

2024-04-02 19:04:59 790人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录密码规则:正则表达式使用方法:补充:java正则校验密码总结密码规则: 它至少包含 8 个字符,最多包含 20 个字符。它至少包含一个数字。它至少包含一个大写字母。它至少包含一个

密码规则:

  • 它至少包含 8 个字符,最多包含 20 个字符。
  • 它至少包含一个数字。
  • 它至少包含一个大写字母。
  • 它至少包含一个小写字母。
  • 它至少包含一个特殊字符,其中包括 !@#$%&*()-+=^。
  • 它不包含任何空白区域

正则表达式

String rex = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\S+$).{8,20}$";

说明:

  • ^表示字符串的起始字符。
  • (?=.*[0-9]) 表示一个数字必须至少出现一次。
  • (?=.*[a-z]) 表示小写字母表必须至少出现一次。
  • (?=.*[A-Z]) 表示必须至少出现一次的大写字母。
  • (?=.*[@#$%^&-+=()] 表示必须至少出现一次的特殊字符。
  • (?=\S+$) 整个字符串中不允许使用空格。
  • .{8, 20}表示至少 8 个字符,最多 20 个字符。
  • $表示字符串的末尾。

使用方法:

通过Java的Pattern.matches()方法进行匹配,如果给定的密码符合条件,返回true,否则返回false

    public static void main(String[] args) {
        //密码至少包含:大小写英文字母、数字、特殊符号,密码长度大于8位,小于20位
        String passWord = "sAAAsasdadsadsa12&_";
        String regex = "^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{8,20}$";
        boolean matches = Pattern.matches(regex, password);
        System.out.println(matches);//true
    }

补充:java正则校验密码

长度不少于8位且至少包含大写字母、小写字母、数字和特殊符号中的四种组合 或者 其中任意三种组合

一、排除法和详细解释

  1、排除大写字母、小写字母、数字、特殊符号中1种组合、2种组合、3种组合,那么就只剩下4种都包含的组合了

  2、表达式为:^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$

  3、拆分解释:其中(2)-(6)运用了零宽断言、环视等正则功能

    (1)^匹配开头

    (2)(?![A-Za-z0-9]+$)匹配后面不全是(大写字母或小写字母或数字)的位置,排除了(大写字母、小写字母、数字)的1种2种3种组合

    (3)(?![a-z0-9\\W]+$)同理,排除了(小写字母、数字、特殊符号)的1种2种3种组合

    (4)(?![A-Za-z\\W]+$)同理,排除了(大写字母、小写字母、特殊符号)的1种2种3种组合

    (5)(?![A-Z0-9\\W]+$)同理,排除了(大写字母、数组、特殊符号)的1种2种3种组合

    (6)[a-zA-Z0-9\\W]匹配(小写字母或大写字母或数字或特殊符号)因为排除了上面的组合,所以就只剩下了4种都包含的组合了

    (7){8,}8位以上

    (8)$匹配字符串结尾

二、测试代码

public class PasswordTest {
    // 密码长度不少于8位且至少包含大写字母、小写字母、数字和特殊符号中的四种
    public static final String password1 = "^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)[a-zA-Z0-9\\W]{8,}$";
    // 密码长度8-20位且至少包含大写字母、小写字母、数字或特殊符号中的任意三种
    public static final String password = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{8,20}$";
 
    public static void main(String[] args) {
        String password1 = "ABCDEFGHIG";  //全部大写
        String password2 = "abcdefghig";  //全部小写
        String password3 = "0123456789";  //全部数字
        String password4 = "!@#$%^&*()";  //全部特殊字符
        String password5 = "ABCDEabcde";  //大写和小写
        String password6 = "ABCDE01234";  //大写和数字
        String password7 = "ABCDE!@#$%";  //大写和特殊字符
        String password8 = "abcde01234";  //小写和数字
        String password9 = "abcde!@#$%";  //小写字母和特殊字符
        String password10 = "01234!@#$%"; //数字和特殊字符
        String password11 = "Aa4!";       //长度不够8位数
        String password12 = "ABCDE01234!@#$%"; //符合要求密码任意三种
        String password13 = "ABCDEabcde!@#$%"; //符合要求密码任意三种
        String password14 = "ABCDEabcde01234"; //符合要求密码任意三种
        String password15 = "abcde01234!@#$%"; //符合要求密码任意三种
        String password16= "ABCabc012@#"; //符合要求密码任意三种 和 符合全部的四种
 
        System.out.println(password1.matches(password) + " 1");
        System.out.println(password2.matches(password)+ " 2");
        System.out.println(password3.matches(password)+ " 3");
        System.out.println(password4.matches(password)+ " 4");
        System.out.println(password5.matches(password)+ " 5");
        System.out.println(password6.matches(password)+ " 6");
        System.out.println(password7.matches(password)+ " 7");
        System.out.println(password8.matches(password)+ " 8");
        System.out.println(password9.matches(password)+ " 9");
        System.out.println(password10.matches(password)+ " 10");
        System.out.println(password11.matches(password)+ " 11");
        System.out.println(password12.matches(password)+ " 12");
        System.out.println(password13.matches(password)+ " 13");
        System.out.println(password14.matches(password)+ " 14");
        System.out.println(password15.matches(password)+ " 15");
        System.out.println(password16.matches(password)+ " 16");
    }
}

总结

到此这篇关于如何利用Java正则表达式校验密码规则的文章就介绍到这了,更多相关Java正则校验密码规则内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何利用Java正则表达式校验密码规则

本文链接: https://www.lsjlt.com/news/168771.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用Java正则表达式校验密码规则
    目录密码规则:正则表达式使用方法:补充:java正则校验密码总结密码规则: 它至少包含 8 个字符,最多包含 20 个字符。它至少包含一个数字。它至少包含一个大写字母。它至少包含一个...
    99+
    2024-04-02
  • 如何在 Go 中使用正则表达式验证密码?
    go 中使用正则表达式验证密码的方法如下:定义正则表达式模式,符合最低密码要求:至少 8 个字符,包含小写字母、大写字母、数字和特殊字符。使用 regexp 包中的 mustcompil...
    99+
    2024-05-14
    正则表达式 密码验证
  • Python中使用正则表达式及正则表达式匹配规则详解
    目录1 导库2 使用模板3 说明4 示例5 正则表达式匹配规则1 导库 import re 2 使用模板 re_pattern = re.compile(pattern, flags...
    99+
    2023-03-22
    Python正则表达式匹配规则 Python正则表达式
  • 正则表达式常用规则有哪些
    这篇文章将为大家详细讲解有关正则表达式常用规则有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们来看一下正则常用规则:一张图足以说明一切,哈哈哈!!方法:find()查找findall()查找所有内...
    99+
    2023-06-20
  • 常用正则表达式之密码格式验证大全
    目录前言示例1种只能由1种组成至少包含1种2种只能由2种组成至少包含2种任意2种组成3种至少包含3种详解吐槽正文附简单的正则表达式例子最后前言 这里有你想要的正则表达式。网上这方面的...
    99+
    2024-04-02
  • java如何使用正则表达式
    Java中使用正则表达式需要使用java.util.regex包中的相关类和方法。以下是使用正则表达式的基本步骤:1. 创建正则表达...
    99+
    2023-09-26
    java
  • JavaScript中怎么利用正则表达式判断匹配规则
    这篇文章将为大家详细讲解有关JavaScript中怎么利用正则表达式判断匹配规则,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。字符串是编程时涉及到的最多的一...
    99+
    2024-04-02
  • Flex正则表达式通用规则有哪些
    小编给大家分享一下Flex正则表达式通用规则有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Flex正则表达式通用规则还有一些在各个Flex正则表达式引擎之间...
    99+
    2023-06-17
  • Python中怎么使用正则表达式及正则表达式匹配规则是什么
    1 导库import re2 使用模板re_pattern = re.compile(pattern, flags=0) result = re.findall(re_pattern,string)3 说明参数描述pattern匹配的正则表...
    99+
    2023-05-14
    Python
  • 密码格式验证的常用正则表达式有哪些
    这篇文章主要为大家展示了“密码格式验证的常用正则表达式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“密码格式验证的常用正则表达式有哪些”这篇文章吧。示例1种只能由1种组成只能由字母组成,1...
    99+
    2023-06-29
  • java正则表达式匹配规则超详细总结
    目录1 单个字符的匹配规则如下:2 多个字符的匹配规则如下:3 复杂匹配规则主要有:4 提取匹配的字符串子段5 非贪婪匹配6 替换和搜索6.1 分割字符串6.2 搜索字符串6.3 替...
    99+
    2024-04-02
  • js如何使用正则表达式验证表单
    这篇文章给大家分享的是有关js如何使用正则表达式验证表单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果图:图(1)初始图图(2)填入信息校验代码如下:<!DOCTYPE...
    99+
    2024-04-02
  • Java 之正则表达式语法及常用正则表达式汇总
    正则表达式概念: 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表...
    99+
    2023-08-18
    正则表达式 java 开发语言
  • 密码的正则表达式怎么写
    本篇内容主要讲解“密码的正则表达式怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“密码的正则表达式怎么写”吧!正则表达式:密码必须至少包含八个字符、至少包含一个数字、小写和大写的字母以及特殊...
    99+
    2023-07-05
  • jQuery中校验时间格式的正则表达式小结
    代码中用到了jQuery,传入的参数是jQuery选择的input对象.原理:先用正则匹配,再提取时分秒,看其是否在正常的范围内。 复制代码 代码如下:function checkT...
    99+
    2022-11-15
    校验时间
  • js输入框如何使用正则表达式校验输入内容
    这篇文章将为大家详细讲解有关js输入框如何使用正则表达式校验输入内容,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。源码如下所示: <!DOCTYPE&nb...
    99+
    2024-04-02
  • Java中@Pattern注解常用的校验正则表达式学习笔记
    目录1、 前端传参要求2、其他常用正则表达式2.1 数字校验2.2 字符串校验2.3 月份时间校验2.4 Email校验2.5 汉字校验2.5 联系电话校验2.5 密码校验总结1、 ...
    99+
    2024-04-02
  • 怎么在Java项目中利用正则表达式验证IP
    这篇文章将为大家详细讲解有关怎么在Java项目中利用正则表达式验证IP,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。具体方法如下:package des;import java.util.r...
    99+
    2023-05-31
    java 正则验证 ava
  • 如何使用java正则表达式验证银行帐号
    本文小编为大家详细介绍“如何使用java正则表达式验证银行帐号”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用java正则表达式验证银行帐号”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言银行帐号是在任...
    99+
    2023-07-05
  • 利用正则表达式校验金额最多保留两位小数实例代码
    目录正则表达式校验金额最多保留两位小数,那么必须满足如下条件:部分正则表达式符号说明:第一步,小数点之前表达式第二步,小数点及小数位置总结先给出表达式结果:^(([1-9]{1}\d...
    99+
    2022-11-13
    金额最多两位小数正则表达式 正则表达式小数如何匹配 正则检验保留2位小数
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作