首页 > 编程语言 >Java正则约束密码

Java正则约束密码

时间:2024-03-04 20:13:14浏览次数:23  
标签:表示 11 Java 下划线 小写字母 密码 正则 字符串

1.密码只能是数字、小写英文字母、大写英文字母、下划线组成,且密码至少包含3种,长度至少有11位。

//定义字符串
String password = "slwoei123_1";
//匹配字符串
String verify = "^(?![a-zA-Z]+$)(?![a-z\\d]+$)(?![a-z_]+$)(?![A-Z\\d]+$)(?![A-Z_]+$)(?![\\d_]+$)[a-zA-Z\\d_]{11,}+$";

//匹配字符串是否符合正则表达式
        if (Pattern.matches(verify,password)){
            System.out.println("密码输入正确!");
        } else {
            System.out.println("密码不符合要求!");
        }

运行结果为:
密码输入正确!

^表示字符串的开始。

(?![a-zA-Z]+$)表示后面不能全是字母。

(?![a-z\d]+$)表示后面不能全部小写字母和数字。

(?![a-z_]+$)表示后面不能全部是小写字母和下划线。

(?![A-Z\d]+$)表示后面不能全部是大写字母和数字。

(?![A-Z_]+$)表示后面不能全部是大写字母和下划线。

(?![\d_]+$)表示后面不能全部是数字和下划线。

[a-zA-Z\d_]表示可以包含字母、数字、下划线。

{11,}表示长度11及以上。

$表示字符串的结束。

综合以上,这个正则表达式要求字符串不能全部是字母、小写字母和数字的组合、小写字母和下划线的组合、大写字母和数字的组合、大写字母和下划线的组合,且必须至少包含一个字母、一个数字和一个下划线,不能是其他特殊符号,字符串长度至少11位。

注:密码需要输入特殊符号,而不是单一下滑线的写法:在所有写下划线的地方添加其他符号即可:(?![a-z_@#$%!]+$)

2.其他正则表示方法:

(?=.*[0-9])表示密码中必须包含至少一个数字

(?=.*[a-z])表示密码中必须包含至少一个小写字母

(?=.*[A-Z])表示密码中必须包含至少一个大写字母

(?=.*[@#$%^&+=]表示密码中必须包含至少一个符号

(?=S+$)表示密码中不能包含空格

标签:表示,11,Java,下划线,小写字母,密码,正则,字符串
From: https://www.cnblogs.com/moon-new-star/p/18052547

相关文章

  • springframework BeanUtils 复制java对象属性值 copyProperties
    importorg.springframework.beans.BeanUtils;importorg.springframework.beans.BeanWrapper;importorg.springframework.beans.BeanWrapperImpl;importjava.beans.PropertyDescriptor;importjava.util.HashSet;importjava.util.Set;/***ObjectBeanUtils*......
  • 青少年CTF平台练习密码学
    凯撒大帝的征讨之路题目凯撒大帝在出征之路上留下了这样一串字符,你能通过这串字符得到FLAG并提交吗?lnixoa{1x2azz7w8axyva7y1z2320vxy6v97v9a}我的解答:凯撒密码qsnctf{1c2fee7b8fcdaf7d1e2320acd6a97a9f}PigPig题目这是什么密码呢?得到的结果请加上qsnctf{}后提交。我的......
  • Java执行cpp文件
    关于JavaCPP:●JavaCPP使得Java应用可以在高效的访问本地C++方法,JavaCPP底层使用了JNI技术,可以广泛的用在JavaSE应用中(也包括安卓),以下两个特性是JavaCPP的关键,稍后咱们会用到:1.提供一些注解,将Java代码映射为C++代码2.提供一个jar,用java-jar命令可以将C++代码转为java应用可以......
  • java进阶9 -「IO」
    一何为IOI/O(Input/Outpu)即输入/输出 。我们先从计算机结构的角度来解读一下I/O。 根据冯.诺依曼结构,计算机结构分为5大部分:运算器、控制器、存储器、输入设备、输出设备。输入设备(比如键盘)和输出设备(比如显示器)都属于外部设备。网卡、硬盘这种既可以属于输入设备,也可以......
  • 说说对正则表达式的零宽断言的名词翻译理解
    我用一队学生里面找人的例子。一条队伍里面有多个叫小明的同学。如何找到自己想要的那个小明呢?可以根据小明前后同学的差别来区分,比如找后面跟着小红的那个小明。这就是零宽断言。类似的你可以说其他三种:后面跟着不是小红,前面是小红,前面不是小红.这里面有个疑惑就是名......
  • Java List常用方法Stream()简要总结&生成的List去重
    Java中,ArrayList应该是比较常用的一个对象了;那么它的stream()方法大家了解过吗?如果可以熟练使用stream()方法,就可以方便地获取list中元素的某个特定字段、对list中的元素进行筛选、或者把list转成map。参考:https://blog.csdn.net/BHSZZY/article/details/122860048如何获取不重......
  • 接口测试-json文件读取报java.lang.ClassCastException: java.util.LinkedHashMap can
    问题原因:从json文件中读取的信息为hashMap,与预期(类对象)格式不匹配,无法解析。问题分析:json文件包含一个json串列表,代表向接口中传递不同的参数组合,通过下面方法读取json文件信息,反序列化成类对象,并把这些赋值的对象进行接口请求参数进行传递。publicList<T>getReadValuesLi......
  • 使用 Java 在Excel中创建下拉列表
    下拉列表(下拉框)可以确保用户仅从预先给定的选项中进行选择,这样不仅能减少数据输入错误,还能节省时间提高效率。在MSExcel中,我们可以通过“数据验证”提供的选项来创建下拉列表,但如果要在Java程序中通过代码实现这一功能,可能需要借助一些第三方库。本文将分享两种使用免费Java库......
  • JAVA面向对象-第二弹
    Java中,所有的类,都默认直接或者间接继承object封装◆该露的露,该藏的藏◆我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。封装(数据的隐藏)◆通常,应禁止直接访问一个对象中数据的实际表示,而应......
  • 黑马程序员JavaWeb学习笔记-过滤器
    过滤器--Filter过滤器Filter快速入门Filter拦截路径过滤器链Filter——流程importcom.alibaba.fastjson.JSONObject;importcom.itheima.pojo.Result;importlombok.extern.slf4j.Slf4j;importorg.springframework.util.StringUtils;importjavax.servlet.*;im......