正则表达式
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+ |