规则符号
正则分类 | 符号 | 含义 | 备注 |
匹配位置 | ^ | 开头 | |
$ | 结尾 | ||
预定义 | \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-./?%&=]*)?$ |