正则表达式规则和常用案例

规则符号

正则分类 符号 含义 备注
匹配位置 ^ 开头  
$ 结尾  
预定义 \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