简单快速理解常用的正则表达式
正则测试
基本格式:
^[正则1]{a,b}$
含义:符合正则1且长度为a到b之间的字符串
说明:以 ^ 符号开头,以 $ 符号结尾,中括号 [] 内填写正则样式,大括号 {} 内填写位数(可以没有),最少a位,最多b位。
例子:
// 2位小写3-4位大写
// aaAAA 或 aaABCD
^[a-z]{2}[A-Z]{3,4}$
组合格式1:
^[正则1]{a,b}$|^[正则2]{c,d}$
含义:符合正则1且长度位a到b的字符串 或 符合正则2且长度位c到d的字符串
说明:每一个表达式均以 ^ 符号开头,以 $ 符号结尾,符号 | 是“或者”的意思
例子:
// 1到2位数字 或 2位小写3位大写
// 12 或 aaAAA
^[0-9]{1,2}$|^[a-z]{2}[A-Z]{3}$
组合格式2:
^[正则1]+(正则2|正则3)?$
含义:以符合正则1的字符串开头,符号 + 表示正则1的字符串可以有多个,后面接正则2或正则3
说明:每一个表达式均以 ^ 符号开头,以 $ 符号结尾,符号 | 是“或者”的意思
例子:
// 多位数字+1到2位小写字母 或者 多为数字+多位大写字母
// 123aa 或者 123456ABCD
^[0-9]+([a-z]{1,2}|[A-Z]+)?$
组合格式3:
^[正则1].+[正则2]?$
含义:以符合正则1的字符串开头,符合正则2的字符串结尾的字符串
说明:符号 .+ 表示多个任意字符
// 多位数字+任意多个字符+多个小写字母
// 123@abc
^[0-9]+.+[a-z]+$
// 以大写字母结
尾
// @123A
^.+[A-Z]+$
组合格式4:
^(?=.*[正则1])[全部正则]{a,b}$
含义:字符串必须满足正则1,然后满足全部正则,长度为a-b
说明:?=.*后面接[正则]表示必须满足这个正则
// 字符串包含数字+大写+小写,长度为3-9位
// ABCabc123
^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z]).{3,9}$
组合格式5:
^(?![正则1])[全部正则]{a,b}$
含义:字符串需要不满足[正则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}$
基本正则表
类型 | 正则样式 |
---|---|
一位数字 | ^[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}$ |