• 简单快速理解常用的正则表达式


    简单快速理解常用的正则表达式

    正则测试

    基本格式:

    ^[正则1]{a,b}$
    
    • 1

    含义:符合正则1且长度为a到b之间的字符串
    说明:以 ^ 符号开头,以 $ 符号结尾,中括号 [] 内填写正则样式,大括号 {} 内填写位数(可以没有),最少a位,最多b位。
    例子:

    // 2位小写3-4位大写
    // aaAAA 或  aaABCD
    ^[a-z]{2}[A-Z]{3,4}$
    
    • 1
    • 2
    • 3

    组合格式1:

    ^[正则1]{a,b}$|^[正则2]{c,d}$
    
    • 1

    含义:符合正则1且长度位a到b的字符串 或 符合正则2且长度位c到d的字符串
    说明:每一个表达式均以 ^ 符号开头,以 $ 符号结尾,符号 | 是“或者”的意思
    例子:

    // 1到2位数字 或 2位小写3位大写
    // 12 或 aaAAA
    ^[0-9]{1,2}$|^[a-z]{2}[A-Z]{3}$
    
    • 1
    • 2
    • 3

    组合格式2:

    ^[正则1]+(正则2|正则3)?$
    
    • 1

    含义:以符合正则1的字符串开头,符号 + 表示正则1的字符串可以有多个,后面接正则2或正则3
    说明:每一个表达式均以 ^ 符号开头,以 $ 符号结尾,符号 | 是“或者”的意思
    例子:

    // 多位数字+1到2位小写字母 或者 多为数字+多位大写字母
    // 123aa  或者  123456ABCD
    ^[0-9]+([a-z]{1,2}|[A-Z]+)?$
    
    • 1
    • 2
    • 3

    组合格式3:

    ^[正则1].+[正则2]?$
    
    • 1

    含义:以符合正则1的字符串开头,符合正则2的字符串结尾的字符串
    说明:符号 .+ 表示多个任意字符

    // 多位数字+任意多个字符+多个小写字母
    // 123@abc
    ^[0-9]+.+[a-z]+$
    
    // 以大写字母结// @123A
    ^.+[A-Z]+$
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    组合格式4:

    ^(?=.*[正则1])[全部正则]{a,b}$
    
    • 1

    含义:字符串必须满足正则1,然后满足全部正则,长度为a-b
    说明:?=.*后面接[正则]表示必须满足这个正则

    // 字符串包含数字+大写+小写,长度为3-9位
    // ABCabc123
    ^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z]).{3,9}$
    
    • 1
    • 2
    • 3

    组合格式5:

    ^(?![正则1])[全部正则]{a,b}$
    
    • 1

    含义:字符串需要不满足[正则1],然后满足[全部正则],长度为a-b
    说明:[正则1]如果是由多个正则组合的,那字符串也需要不满足[正则1]的所有子集

    // 字符串不能是数字,大写,小写,数字+大写,数字+小写,大写+小写。
    // 123456!
    ^(?![\dA-Za-z]+$).{6,10}$
    
    // 字符串包含数字、字母、特殊符号中任意两种及以上,长度为6-20位
    // ABC123  或  123456@
    ^(?![\d]+$)(?![a-zA-Z]+$)(?![~!@#$%^&*]+$).{6,20}$
    
    // 字符串包含数字、大写字母、小写字母、特殊符号中任意三种及以上,长度为6-20位
    // 123abc!
    
    ^(?![\dA-Z]+$)(?![\da-z]+$)(?![\d~!@#$%^&*]+$)(?![A-Za-z]+$)(?![A-Z~!@#$%^&*]+$)(?![a-z~!@#$%^&*]+$).{6,20}$
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    基本正则表

    类型正则样式
    一位数字^[0-9]$
    多位数字^[0-9]+$
    n位数字^\d{n}$
    大写字母^[A-Z]*$
    小写字母^[a-z]*$
    特殊符号^[~!@#$%^&*]*$
    中文^[\u4e00-\u9fa5]{0,}$

    常用正则表

    常用密码类型正则样式
    数字+大写+小写^(?=.*\d+)(?=.*[a-z]+)(?=.*[A-Z])[\da-zA-Z]{8,20}$
    数字+字母^(?=.*\d+)(?=.*[a-zA-Z]+)[\da-zA-Z]{8,20}$
    数字、字母、特殊字符,任意两种及以上^(?![\d]+$)(?![a-zA-Z]+$)(?![~!@#$%^&*]+$)[\da-zA-Z~!@#$%^&*]{8,20}$
    数字、大写字母、小写字母、特殊符号,任意三种及以上^(?![\dA-Z]+$)(?![\da-z]+$)(?![\d~!@#$%^&*]+$)(?![A-Za-z]+$)(?![A-Z~!@#$%^&*]+$)(?![a-z~!@#$%^&*]+$)[\da-zA-Z~!@#$%^&*]{8,20}$
  • 相关阅读:
    分布式一致性算法:Raft
    Redis Key-Value数据库 【实战】
    从单点到全景:视频汇聚/安防监控EasyCVR全景视频监控技术的演进之路
    要如何才能抑制局部放电试验干扰?
    C/C++ Qt 数据库与SqlTableModel组件应用
    对优雅的解释
    『牛客|每日一题』循环队列
    如何通过VNC实现公网远程控制macOS设备
    如何在复现LaneNet车道线检测项目时,采用网上博主制作数据集的方法来只做自己的数据集,当把此数据集投喂进网络训练时(采用Pytorch库)会报如下的错误?
    深度学习之使用Milvus向量数据库实战图搜图
  • 原文地址:https://blog.csdn.net/fq_wallow/article/details/126220977