正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。
记住正则语法最好的办法就是记住这三样东西:Bracket(括号), caret(插入符号)和Dollars(美元符号)。
B:在正则表达式中有3种类型的括号:方括号 “[“和花括号“{“ 。
方括号"["内是需要匹配的字符,花括号"{"内是指定匹配字符的数量。圆括号“(“ 则是用来分组的。
C:插入符号 “^” 表示正则式的开始。
D:美元符号“$” 表示正则式的结束。
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空白行的正则表达式:\n\s*\r
匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?|<.*? />
匹配首尾空白字符的正则表达式:^\s*|\s*$
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
匹配腾讯QQ号:[1-9][0-9]{4,}
匹配中国邮政编码:[1-9]\d{5}(?!\d)
匹配身份证:\d{15}|\d{18}
匹配ip地址:\d+\.\d+\.\d+\.\d+
匹配特定数字:
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
========================================================================================
验证数字:^[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+)?$
====================================================================================
字符串处理
表达式:
^\$?(\d{1,3},?(\d{3},?)*\d{3}(\.\d{0,2})?|\d{1,3}(\.\d{0,2})?|\.\d{1,2}?)$
美国货币格式(中国的人民币应该是一样的,改为人民币符号即可了)
匹配:
$1.99 | 1.99 | .99
不匹配:
$10.999 | 100,00.99 | blank
表达式:
^([1-9]{0,1})([0-9]{1})(\.[0-9])?$
匹配:
1 | 1.1 | 0.1
不匹配:
01 | 01.1 | 0.10
表达式:
^(?!\u00a2) #Don't allow cent symbol \p{Sc}? #optional unicode currency symbols (?!0,?\d) #don't allow leading zero if 1 or more unit (\d{1,3} # 1 to 3 digits (\,\d{3})* # if the is a comma it must be followed by 3 digits |(\d+)) # more than 3 digit with no comma separator (\.\d{2})?$ # option cents
匹配:
$1,501.13 | £215 | 4.93
不匹配:
01.00 | $.00 | ¢50
表达式:
(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,2})?$
校验为5位整数位,两位小数位,且不允许为0
匹配:
12345.12 | 0.5
不匹配:
123456.12 | 1.234 | .1
表达式:
^\$?\d+(\.(\d{2}))?$
可以有也可以没有美元符号,分位也可以有,也可以无。
匹配:
$2.43 | 2.02 | $2112
不匹配:
2.1 | $.14 | $2,222.12
表达式:
^\$?\-?([1-9]{1}[0-9]{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))$|^\-?\$?([1-9]{1}\d{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))$|^\(\$?([1-9]{1}\d{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))\)$
金融格式,美元符号可选,正负可选
匹配:
($4,000.00) | -$4000.00 | -$400.00
不匹配:
4,00.000 | abc | $
表达式:
^\d{0,2}(\.\d{1,2})?$
输入为两位数的整数,小数
匹配:
99.99 | 99 | .99
不匹配:
999.999 | 999 | .999
表达式:
^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$
浮点数的格式可以是科学指数形式
匹配:
123 | -123.35 | -123.35e-2
不匹配:
abc | 123.32e | 123.32.3
表达式:
^[+]?\d*$
只能输入数字,不可输入其他字符
匹配:
0123456789 | 1234 | 1
不匹配:
1.0?& | a1 | 2a-
表达式:
^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$
数据格式
匹配:
123456.123456 | 123456,123456 | 123456
不匹配:
123a.123 | 123a,123 | a
匹配逗号数据格式,单精度数,也匹配空字符串。
^(\d|,)*\.?\d*$
匹配:
1,000 | 3,000.05 | 5,000,000
不匹配:
abc | $100,000 | Forty
匹配正的数据,不匹配0或者负值:
(^\d*\.?\d*[1-9]+\d*$)|(^[1-9]+\d*\.\d*$)
匹配:
0.050 | 5.0000 | 5000
不匹配:
0 | 0.0 | .0
匹配0-9999999,7位数允许
^\d{1,7}$
匹配:
1234567 | 9999999 | 1
不匹配:
12345678 | 9999.99 | -1234
匹配不超过两位小数的浮点数,实数,小数,允许负号
^[-]?([1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|\.[0-9]{1,2})$
匹配:
123 | 123.54 | -.54
不匹配:
123.543 | 0012 | 1,000.12
货币或金融格式,人民币格式
^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$
匹配:
$1,234.50 | $0.70 | .7
不匹配:
$0,123.50 | $00.5
整数或两位小数
^\d+(?:\.\d{0,2})?$
匹配:
1 | 1.23 | 1234.45
不匹配:
a1.34 | 1.23a | a
小数点左边7位,右边9位
^(?=.*[1-9].*$)\d{0,7}(?:\.\d{0,9})?$
匹配:
1 | 0123456.123456789 | .123456789
不匹配
.0123456789 | 0.0 | -1
数字,不接受空格
^\d+$
匹配:
2 | 50 | 0
不匹配
-15 | 1.2
接受无符号整数,也匹配空字符串
^\d*$
匹配:
123 | 000 | 43
不匹配
asbc | -34 | 3.1415
支持-999.99到+999.99,正的或者负的整数或者小数,百分比符号也支持,不允许空字符串,可根据需要调整范围
^[-+]?[0-9]\d{0,2}(\.\d{1,2})?%?$
匹配:
12.3 | 123 | -123.45
不匹配
- | 10.1234 | -1234
^([1-9]|[1-9]\d|100)$
匹配:
1 | 50 | 100
不匹配:
0 | .5 | 101
实数
^((\d?)|(([-+]?\d+\.?\d*)|([-+]?\d*\.?\d+))|(([-+]?\d+\.?\d*\,\ ?)*([-+]?\d+\.?\d*))|(([-+]?\d*\.?\d+\,\ ?)*([-+]?\d*\.?\d+))|(([-+]?\d+\.?\d*\,\ ?)*([-+]?\d*\.?\d+))|(([-+]?\d*\.?\d+\,\ ?)*([-+]?\d+\.?\d*)))$
匹配:
8.0 | 8.0,-.38,+8.9 | 8.0, +8.8, 0.09
不匹配:
+ | . | a,b, c
值从5位整数,两位小数的格式
(^\d{3,5}\,\d{2}$)|(^\d{3,5}$)
匹配:
100,00 | 100 | 99999,99
不匹配:
99,99 | 999999 | 1,00
匹配任何有符号整数
^(\+|-)?\d+$
匹配:
-34 | 34 | +5
不匹配:
abc | 3.1415 | -5.3
匹配指定的数据格式
^(\d{1,3}'(\d{3}')*\d{3}(\.\d{1,3})?|\d{1,3}(\.\d{3})?)$
匹配:
1'235.140 | 1'222'333.120 | 456
不匹配
1234.500 | 78'45.123 | 123,0012
末尾是以 25, 50, 75, 0 或 00结束的数字
^\d*\.?((25)|(50)|(5)|(75)|(0)|(00))?$
匹配:
0.25 | .75 | 123.50
不匹配:
.77 | 1.435
接受正的或者负的百分数0-100,接受2为小数。
^-?[0-9]{0,2}(\.[0-9]{1,2})?$|^-?(100)(\.[0]{1,2})?$
匹配:
12.34 | 100.00 | -2.1
不匹配:
101.1 | 10.123 | 100.10
匹配实数,+-号可以有可以无,小数点可以有可以无。
^[-+]?\d+(\.\d+)?$
匹配:
123 | -123.45 | +123.56
不匹配:
123x | .123 | -123.
匹配任何有效的数字字符串
^[-+]?\d*$
匹配
123 | -123 | +123
不匹配:
abc | 3.14159 | -3.14159
匹配浮点数和数字字符串,+-号可选,也匹配空字符串
^[-+]?\d*\.?\d*$
匹配:
123 | +3.14159 | -3.14159
不匹配:
abc | 3.4.5 | $99.95
数据格式
^(\d|-)?(\d|,)*\.?\d*$
匹配:
5,000 | -5,000 | 100.044
不匹配:
abc | Hundred | 1.3.4
整个整数范围的数,并允许用户在千位输入逗号
^0$|^[1-9][0-9]*$|^[1-9][0-9]{0,2}(,[0-9]{3})$
匹配:
1234 | 0 | 12,345
不匹配:
12,3245 | -1 | 1234.23
任何正负小数,包括空串
^-?\d*(\.\d+)?$
Description
匹配:
4.4 | .4 | -.4
不匹配:
. | ... | zero
整数位为5位,小数为3位,不包括0
(?!^0*$)(?!^0*\.0*$)^\d{1,5}(\.\d{1,3})?$
匹配:
1 | 12345.123 | 0.5
不匹配:
0 | 0.0 | 123456.1234
匹配任何无符号的浮点数,数字串,也匹配空串
^\d*\.?\d*$
匹配:
123 | 3.14159 | .234
不匹配:
abc | -3.14159 | 3.4.2
匹配金额输入,或包含逗号
^\$?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$
匹配:
$3,023,123.34 | 9,876,453 | 123456.78
不匹配:
4,33,234.34 | $1.234 | abc
包括,号整数串
^([1-9]{1}[0-9]{0,7})+((,[1-9]{1}[0-9]{0,7}){0,1})+$
匹配:
1,2,3455,12345678 | 23045,34678,2892 | 1,2,99999999
不匹配
01,234,567 | 123,0445,3434, | 121,,1212,,12,
可有也可没有小数位,支持逗号分隔千分位
^(((\d{1,3})(,\d{3})*)|(\d+))(.\d+)?$
匹配:
9999999 | 99999.99999 | 99,999,999.9999
不匹配:
9999. | 9,99,99999.999 | 999.9999.9999
检查正的小数或整数
^[0-9]*(\.)?[0-9]+$
匹配:
1 | 123 | 132.132
不匹配:
1.2.2 | -123
匹配0 – 65535范围内的整数
^([0-5]?\d?\d?\d?\d|6[0-4]\d\d\d|65[0-4]\d\d|655[0-2]\d|6553[0-5])$
匹配:
0 | 65535 | 59999
不匹配:
123456 | 69999 | 65599