[TOC]
/D 和[^/d]意思一样,就是与 /d 相反
REG | 意义 |
---|---|
/d digital | 表示 0 到 9 之间任意的一个数字 |
/w world | 表示任意一个 字母或数字或下划线 ,不包含¥$%等 |
/s space | 表示包括空格、制表符、换行符等空白字符中任意一个 |
. | 可以匹配任意一个字符 |
REG | 意义 |
---|---|
[ad# ] 方括号 | 表示匹配 a 或 d 或 # 或 空格 |
[ad# ] | 表示除方括号意外的字符 |
[a-g] | 表示匹配 a 到 g 之间的字符,别和上面的混淆了 |
[^a-f,0-3] | 匹配除了 a - f 和 0 到 3以外的字符 |
| REG
| 意义 |
|:------|------: |
| (/d){10}
|前面的规则重复匹配了10次 |
| {n,m}
|表示至少重复n次,最多重复m次 |
| {n,}
|至少n次|
| ?
| 同{0,1} |
| +
| 同{1,} |
| *
| 同{0,} |
多行模式:multi line 模板串分为多个行
REG | 意义 |
---|---|
^ | 与字符串开始的地方匹配 |
$ | 与字符串结束的地方匹配 |
/b | 表示在边界处匹配字符,放在左右会不一样的结果 |
REG | 意思 |
---|---|
/| | 表示‘或’的意思,匹配左边或右边 |
() | 对正则表达式分组,更好地组织匹配 |
(?:Expression) | 不把()组中匹配到的字符不保存到group中 |
/nnn
反向引用|把捕获的字符分组编号,左括号为一个分组
很少用的
REG | 意义 |
---|---|
(/w)(?=Expression) | 匹配以 Expression匹配到的字符结尾 的字符 |
(/w)(?!Expression) | 匹配 不能以Expression匹配到的字符结尾 的字符 |
(/w)(?<=Expression) | 位置 前面 可以匹配Expression |
(/w)(?<!Expression) | 位置 后面 可以Expression |
表达式 方向 说明
| GEG
|意义|
|:----|----:|----:|
| (?=xxx)
|正向预搜索(向右) 正向预搜索,判断当前位置右侧是否能匹配指定表达式 |
| (?!xxx)
| 正向预搜索(向右) 正向预搜索否定,判断当前位置右侧是否不能够匹配指定表达式 |
| (?<=xxx)
| 反向预搜索,反向预搜索,判断当前位置左侧是否能够匹配指定表达式|
要考虑的问题:
第一版
没能匹配到用户名中有 ”.“的邮箱
(/w+)@(/w+)(/.[a-zA-Z]{2,5}){1,2}
最终版
(/w)+(/./w+)*@(/w)+((/./w{2,3}){1,3})
这个可以匹配用户名含有“.“的邮箱
[/u4e00-/u9fa5]
***
第一版:
((/d{1,3})/.){3}/d{1,3}
把562.264.351也匹配了,没能确定IP地址<255
第二版(最终版)
(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
/ ** * 最简洁的IP判断正则表达式 * 25[0-5] 250-255 * 2[0-4]/d 200-249 * [01]?/d/d? 000-199(0-9 /d)(10-99 /d/d)(100-99 1/d/d) * ($|(?!/.$)/.) 结束 或者 不以.结束的加上. * (?!^0{1,3}(/.0{1,3}){3}$) 排除 0.0.0.0 /^(?!^0{1,3}(/.0{1,3}){3}$)((25[0-5]|2[0-4]/d|[01]?/d/d?)($|(?!/.$)/.)){4}$/ * (?!^255(/.255){3}$) 排除 255.255.255.255 */
固定电话7位数,包含0开头和”—”移动电话11位数,以13或15开头
(0/d{2,3}-/d{7,9})|(1[35]/d{9})