正则表达式也被称为规则表达式,用于对字符串的匹配,在使用上简介明了,但是没有经过正则知识的开发者会认为是看不懂的规则
js风格new RegExp('a','i'); i代表忽略大小写 简写 ignore
perl风格/a/i
- 量词:+
- 例如:\d:代表一次 \d\d:代表2次 \d+:代表出现若干次
- 全局匹配:g
- 例如:/a/g
- 任意字符:[abc];
- 例子:[abc]s————as,bs,cs
- 范围 [a-z],[0-9]
- 例子:id[0-9]————id0,id1,id2…id9
- 排除:[^a] 排除掉a字符
- 例子:o[^0-9]————oat,o?t,o t
- 组合
- [a-z0-9A-Z] 小写字母或数字或大写字母只能出现一次
- 转义字符
- .(点) 任意字符
- \d 数字0-9
- \w a-z小写字母 英文、数字、下划线
- \s 空白字符
- \D [^0-9]
- \W [^a-z0-9]
- \S 非空白
- 常用量词
- {n} 正好出现n次
- 例子: \d{8} 数字正好出现8次
- [1-9]\d{7} 1到9开头的数字正好出现8次
- 例子: \d{8} 数字正好出现8次
- {n.m} 最少n次 最多m次
- 例子: [1-9]\d{4,10} 5,10
- {n,} 最少n次,最多不限
- + {1,} 最少出现1次 最多不限
- ? {0,1} 最少0次最多1次 可有可无
- 例子: 010-87495698-23 (0\d{2,3})?[1-9]\d{7}(-\d{1,5}) 分区可有可无 号码8位 分机1为或5位
- * {0,} 可以无也可以无线有
- {n} 正好出现n次
实例 邮箱
一串英文、数字、下划线 @ 一串英文、数字 . 一串英文 \w+ @ [a-z0-9]+ \. [a-z]+ ^ 行首[字符串开头] $ 行尾[字符串结尾] ^\w+@[a-z0-9]\.[a-z]+$/i