正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。

       正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。

一、正则表达式匹配特定的数字 

1、匹配正整数:^[1-9]d*$ 
2、陪陪负整数: ^-[1-9]d*$
3、匹配整数:^-?[1-9]d*$
4、匹配非负整数(正整数和0):^[1-9]d*|0$
5、匹配非正整数(负整数和0):^-[1-9]d*|0$
6、匹配正浮点数:^[1-9]d*.d*|0.d*[1-9]d*$
7、匹配负浮点数 :^-([1-9]d*.d*|0.d*[1-9]d*)$
8、匹配浮点数:^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$
9、匹配非负浮点数(正浮点数和0):^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$
10、匹配非正浮点数(负浮点数和0):^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$

二、正则表达式匹配特定字符串

1、匹配由26个英文字母组成的字符串 :^[A-Za-z]+$  
2、匹配由26个英文字母的大写组成的字符串 :^[A-Z]+$  
3、匹配由26个英文字母的小写组成的字符串 :^[a-z]+$
4、匹配由数字和26个英文字母组成的字符串 :^[A-Za-z0-9]+$  
5、匹配由数字,26个英文字母或者下划线组成的字符串 :^w+$  
6、匹配双字节字符(包括汉字在内):[^x00-xff] 
7、匹配中文字符的正则表达式: [u4e00-u9fa5]
8、匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? />
9、匹配空白行的正则表达式:\n\s*\r
10、匹配首尾空白字符的正则表达式:^\s*|\s*$

三、正则表达式匹配常用的功能逻辑

 

1、匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
2、匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
3、匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
4、匹配国内电话号码:d{3}-d{8}|d{4}-d{7} 
5、匹配腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
6、匹配中国邮政编码:[1-9]d{5}(?!d) (中国邮政编码为6位数字)
7、匹配身份证:d{15}|d{18} (中国国民的身份证号码为15位或者18位)
8、验证用户密码:“^[a-zA-Z]w{5,17}$”,正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线
9、验证是否含有^%&'',;=?$"等字符:“[^%&'',;=?$x22]+” 
10、验证一年的12个月:“^(0?[1-9]|1[0-2])$”(正确格式为:“01”-“09”和“1”“12” )
11、验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$” (正确格式为:“01”“09”和“1”“31”)
12、验证密码为6~10位,并且只含有字母和数字:
    '/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,10}$/'
注释:(^ 匹配一行的开头位置;(?![0-9]+$) 预测该位置后面不全是数字;(?![a-zA-Z]+$) 预测该位置后面不全是字母;[0-9A-Za-z] {6,10} 由6-10位数字或这字母组成;$ 匹配行结尾位置)
13、验证手机号码的正确性的正则表达式:
 
rege"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|7[06-8])\\d{8}$"