网络上类似的正则表达式整理的很多,但是很少配有专门的案例。下面是我找到一个博客里面的常用正则表达式,希望通过常用的正则表达式归纳出下图的那些结论。
推荐书籍:《精通正则表达式》
正则在线检测:http://www.regexpal.com/
一、校验数字的表达式
1.数字:^[0-9]*$
2.n位的数字:^\d{n}$
3.至少n位的数字:^\d{n,}$
4.m-n位的数字:^\d{m,n}$
1. \d 数字:[0-9]
2. {m,n} 匹配前一个字符m至n次
{,n} 匹配前一个字符0至n次
{m,} 匹配前一个字符m至无穷次
3. * 匹配前一个字符0或无限次
4. ^ 匹配字符串开头
$ 匹配字符串结尾
5.零和非零开头的数字:^(0|[1-9][0-9]*)$
1. 左右表达式任意一个
6.非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
1. ()被括起来的表达式将作为分组
2. ?匹配前一个字符0次或1次
7 带1-2位小数的正数或负数:^(-)?\d+(.\d{1,2})?$
1. \转义字符
2. ?重复0次或1次
8 正数、负数、和小数:^(-|+)?\d+(.\d+)?$
9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
10 有1~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
11 非零的正整数:^[1-9]\d$
12 非零的负整数: ^-[1-9]\d$
13 非负整数:^\d+$
1. 匹配前一个字符1次或无限次
14 非正整数:^((-\d+)|(0+))$
15 非负浮点数:^\d+(.\d+)?$
16 非正浮点数:^((-\d+(.\d+)?)|(0+(.0+)?))$
17 正浮点数:^[0-9]\d.\d$
二、校验字符的表达式
1 汉字:^[\u4e00-\u9fa5]{0,}$
对应的是中文的unicode编码
2 英文和数字:^[A-Za-z0-9]+$
3 长度为3-20的所有字符:^.{3,20}$
4 由26个英文字母组成的字符串:^[A-Za-z]+$
5 由26个大写英文字母组成的字符串:^[A-Z]+$
6 由26个小写英文字母组成的字符串:^[a-z]+$
7 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
8 由数字、26个英文字母或者下划线组成的字符串:^\w+$
9 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
10 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$
11 可以输入含有^%&',;=?$"等字符:[^%&',;=?$]+
暂时不理解:\X22出现的必要性
12 禁止输入含有的字符:[^\x22]+
三、特殊需求表达式
1 Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
2 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
3 InternetURL:[a-zA-z]+://[^\s]*
4 手机号码:^(13[0-9]|14[5|7]|15[0-9])\d{8}$
5 电话号码 ^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
6 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
7 身份证号(15位、18位数字):^\d{15}|\d{18}$
8 短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
9 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
10 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
11 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
12 日期格式:^\d{4}-\d{1,2}-\d{1,2}
13 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
14 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
15 空白行的正则表达式:\n\s*\r (可以用来删除空白行)
16 首尾空白字符的正则表达式:^\s*|\s*$
17腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
18 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
19 IP地址:\d+\.\d+\.\d+\.\d+ (提取IP地址时有用)
参考链接
1、最全的正则表达式大全
2、正则表达式菜鸟教程
3、正则表达式30分钟入门教程