正则表达式匹配指定范围数字及各种常用例子

前端之家收集整理的这篇文章主要介绍了正则表达式匹配指定范围数字及各种常用例子前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

ATL正则库参考:http://www.codeproject.com/Articles/13320/Using-Regular-Expressions-in-MFC

一、写一个正则表达式,用来匹配1~4095的数字。

现在就以这个为例,说一下表示范围的正则怎么写。

1、只有1~3位数字,即数字范围:1~999。

分析:第1个数字是1~9,后面的可以出现0~9的数字,最多2位。于是,就有了下面的字符串:

"[1-9]\\d{0,2}+"

2、4位数的,要小于等于4095,即数字范围:1000~4095。

分析:第1位,可以是1~4;第2位,依赖第1位,当第1位是4的时候,第2位只能是0;同理,第3位依赖第2位;第4位依赖第3位。所以,就有了以下代码

"[1-4]\\d(?<!4[1-9])\\d\\d(?<!409[6-9])"

这里用的是非捕获(?<!X)X,通过零宽度的负 lookbehind 来实现的。

二、

验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0) ^\d+$
验证非正整数(负整数 + 0) ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数 ^(-?\d+)(\.\d+)?$

三、

"[1-4]\\d(?<!4[1-9])\\d\\d(?<!409[6-9])"
这里用的是非捕获(?<!X)X,通过零宽度的负 lookbehind 来实现的。

字符
说明
(?#注释)

(expeRSSion)
匹配字符串expeRSSion,并将匹配的文本保存到自动命名的组里。

(?<name>expeRSSion)
匹配字符串expeRSSion,并将匹配的文本以name进行命名。该名称不能包含标点符号,不能以数字开头。

(?:expeRSSion)
匹配字符串expeRSSion,不保存匹配的文本,也不给此组分配组号。

(?=expeRSSion)
匹配字符串expeRSSion前面的位置。

(?!expeRSSion)
匹配后面不是字符串expeRSSion的位置。

(?<=expeRSSion)
匹配字符串expeRSSion后面的位置。

(?<!expeRSSion)
匹配前面不是字符串expeRSSion的位置。

(?>expeRSSion)
只匹配字符串expeRSSion一次。

转载自:http://lippeng.iteye.com/blog/1038986

http://www.cnblogs.com/ly5201314/archive/2008/09/04/1284139.html

猜你在找的正则表达式相关文章