正则表达式
01_元字符
量词 |
功能 |
* (贪婪) |
重复零次或更多 |
+ (懒惰) |
重复一次或更多次 |
? (占有) |
重复零次或者一次 |
{n} |
重复n次 |
{n, m} |
重复n,m次 |
{n,} |
重复n次或者更多次 |
[abc] |
字符组 匹配包含括号内元素的字符 |
02_几种反义
反义 |
功能 |
\W |
匹配任意不是字母,数字,下划线 的字符 |
\S |
匹配任意不是空白符的字符 |
\D |
匹配任意非数字的字符 |
\B |
匹配不是单词开头或结束的位置 |
[^abc] |
匹配除了abc以外的任意字符 |
03_量词
贪婪(贪心) 如"*"字符 贪婪量词会首先匹配整个字符串,尝试匹配时,它会选定尽可能多的内容,如果 失败则回退一个字符,然后再次尝试回退的过程就叫做回溯,它会每次回退一个字符,直到找到匹配的内容或者没有字符可以回退。相比下面两种贪婪量词对资源的消耗是最大的,
懒惰(勉强) 如 "?" 懒惰量词使用另一种方式匹配,它从目标的起始位置开始尝试匹配,每次检查一个字符,并寻找它要匹配的内容,如此循环直到字符结尾处。
占有 如"+" 占有量词会覆盖事个目标字符串,然后尝试寻找匹配内容 ,但它只尝试一次,不会回溯,就好比先抓一把石头,然后从石头中挑出黄金
量词 |
功能 |
* (贪婪) |
重复零次或更多 |
+ (懒惰) |
重复一次或更多次 |
? (占有) |
重复零次或者一次 |
{n} |
重复n次 |
{n, m} |
重复n,m次 |
{n,} |
重复n次或者更多次 |
04_懒惰限定符
类型 |
正则表达式 |
*? |
重复任意次,但尽可能少重复 |
+? |
重复1次或更多次,但尽可能少重复 |
?? |
重复0次或1次,但尽可能少重复 |
{n,m}? |
重复n到m次,但尽可能少重复 |
{n,}? |
重复n次以上,但尽可能少重复 |
常用的正则表达式
01_校验数字的表达式
类型 |
正则表达式 |
数字 |
^[0-9]*$ |
n位的数字 |
^\d{n}$ |
m-n位的数字 |
^\d{m,n}$ |
零和非零开头的数字 |
^(0|1-9][0-9]*)$ |
浮点数 |
^(-?\d+)(.\d+)?$ |
02_校验字符的表达式
类型 |
正则表达式 |
汉字 |
^[\u4e00-\u9fa5]{0,}$ |
英文和数字 |
^[A-Za-z0-9]+$ |
中文、英文、数字包括下划线 |
^[\u4E00-\u9FA5A-Za-z0-9_]+$ |
可以输入含有^%&',;=?$"等字符 |
[^%&',;=?$\x22]+ 12 |
03_特殊表达式
类型 |
正则表达式 |
Email地址 |
^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$ |
域名 |
a-zA-Z0-9{0,62}(/.a-zA-Z0-9{0,62})+/.? |
InternetURL |
^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?$ |
手机号码 |
^(13[0-9]|14[5[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$ |
身份证号(15位、18位数字): |
^\d{15} |
短身份证号码(数字、字母x结尾): |
^([0-9]){7,18}(x|X)?$ |
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线) |
^[a-zA-Z]\w{5,17}$ |
强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间) |
^(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,10}$ |
日期格式 |
^\d{4}-\d{1,2}-\d{1,2} |
xml文件 |
^([a-zA-Z]+-?)+[a-zA-Z0-9]+\.x|X[I|L]$ |
IP地址(提取IP地址时有用) |
\d+.\d+.\d+.\d+ |