正则表达式规则和常用案例
其他
2021-01-24 10:13:31
阅读次数: 0
规则符号
正则分类 |
符号 |
含义 |
备注 |
匹配位置 |
^ |
开头 |
|
$ |
结尾 |
|
预定义 |
\d |
1个数字 |
对常用字符集的简化 |
\b |
单词边界 |
\w |
1个数字或字母 |
\s |
1个空字符(空格、换行、tab) |
. |
匹配除了回车、换行外的所有字符 |
反义 |
\D |
匹配任意非数字的字符 |
字母大写,意思与预定义相反。 |
\B |
匹配不是单词开头或结束的位置 |
\W |
匹配任意不是字母,数字,下划线 的字符 |
\S |
匹配任意不是空白符的字符 |
[^X] |
除了X都行 |
排除,^只能放开头。 |
量词 |
{n,m} |
至少n次,至多m次 |
字符集写在量词前面。 量词修饰相邻的前一个(左侧)字符集。 |
{n,} |
至少n次 |
{n} |
必须n次 |
? |
至多1次 |
* |
可有可无 |
+ |
至少一次 |
懒惰限定符 |
*? |
重复任意次,但尽可能少重复 |
尽可能少重复 |
+? |
重复1次或多次,但尽可能少重复 |
?? |
重复0次或1次,但尽可能少重复 |
{n,m}? |
重复n到m次,但尽可能少重复 |
{n,}? |
重复n次以上,但尽可能少重复 |
简写 |
[A-Za-z] |
1个字母 |
中间字符连续,可用 - 省略简写。 |
[0-9] |
1个数字 |
[\u4e00-\u9fa5] |
1个汉字 |
转义字符 |
\ |
使特殊字符变为普通字符被识别,如 \+ |
告诉浏览器转义字符后为原文 |
选择 |
规则1|规则2 |
或者 |
满足一个规则即可 |
分组 |
() |
将多个字符集用()包裹 |
为了让一个量词修饰多个字符集 |
(exp) |
匹配exp,并捕获文本到自动命名的组里 |
捕获分组 |
(?<name>exp) |
匹配exp,并捕获文本到名称为name的组里 |
(?:exp) |
匹配exp,不捕获匹配的文本,也不给此分组分配组号 |
(?=exp) |
匹配exp前面的位置 |
(?<=exp) |
匹配exp后面的位置 |
(?!exp) |
匹配后面跟的不是exp的位置 |
(?<!exp) |
匹配前面不是exp的位置 |
常用案例
常见案例 |
规则描述 |
正则表达式 |
身份证号 |
公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 |
\d{15}(\d{2}[0-9xX])? |
\d{17}[\d|x|X]|\d{15} |
手机号 |
11位手机号 |
^1[0-9]{10}$ |
11位手机号,约束第二位为 3 4 5 7 8 |
^1[34578]\d{9}$ |
邮箱 |
邮箱不区分大小写 \w 匹配数字母下划线 中括号里是小写字母或0-9数字 后面+是一个或多个 转义一个点 任意多个字母 |
/^\w+@[a-z0-9]+\.[a-z]+$/i |
|
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ |
密码 |
至少8字符 至少1大写字母 至少1小写字母 至少1数字字符 至少1特殊字符 |
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/ |
至少8-16个字符,至少1个大写字母,1个小写字母和1个数字,其他字符任意 |
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]{8,16}$/ |
以字母开头,长度在6~18之间,只能包含字母、数字和下划线 |
^[a-zA-Z]\w{5,17}$ |
必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间 |
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$ |
必须包含大小写字母和数字的组合,可以使用特殊字符,长度在8-10之间 |
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ |
域名 |
|
[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.? |
InternetURL |
|
[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ |
转载自blog.csdn.net/Irene1991/article/details/105072548