前言:

         头两天看一些代码,看到其中一大堆((?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-(?!.*\n).*$类似的代码,感觉很是模糊,不知道这是什么东东。于是就查了一下,发现还有正则表达式这么个规则。把我学到的一些东西分享给大家。

          正则表达式是什么

         正则表达式,英文为:Regular Expression意思是有规律的表示。正则表达式是一个功能强大的文本处理语言,它可以灵活、高效、便捷的处理程序中需要对文本的处理。比如说:我们需要在电脑中查找一些名称为以w字母开头的文本文档,但是我们只知道这个文档的开头是w其他一概不知,那么我们怎么去查呢?我们会在查找框中输入这样的字符:w*.txt 然后去查找。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不过比起通配符,它能更精确地描述你的需求

         正则表达式能干什么

         正则表达式可以处理一些传统用字符串直接处理时处理起来比较困难的事,比如说:从代码中提取Email地址、查找重复单词、给一些数字加上空格等等。

         常用的正则表达式

         [ ] 范围描述符。[a-z]表示从a到z之间的任意一个。 \w 英文字母和数字。即[0-9 A-Z a-z]。 \W 非英文字母和数字 \s 空字符,即[\t\n\r\f]。 \S 非空字符。 \d 数字,即[0-9]。 \D 非数字。 \b 词边界字符(在范围描述符外部时) \B 非词边界字符 \b 退格符(0x08)(在范围描述符内部时) * 前面元素出现0次以上 + 前面元素出现1次以上 {m,n} 前面元素最少出现m次,最多出现n次 ? 前面元素出现0次或1次 | 选择 ( ) 群组 其他字符 该字符本身 
 


常用正则式

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)
匹配网址URL的正则表达式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
 sql语句:^(select|drop|delete|create|update|insert).*$
 1、非负整数:^\d+$ 

 2、正整数:^[0-9]*[1-9][0-9]*$ 

 3、非正整数:^((-\d+)|(0+))$ 

 4、负整数:^-[0-9]*[1-9][0-9]*$ 

 5、整数:^-?\d+$ 

 6、非负浮点数:^\d+(\.\d+)?$ 

 7、正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 

 8、非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$ 

 9、负浮点数:^(-((正浮点数正则式)))$ 

10、英文字符串:^[A-Za-z]+$ 

 11、英文大写串:^[A-Z]+$ 

 12、英文小写串:^[a-z]+$ 

 13、英文字符数字串:^[A-Za-z0-9]+$ 

 14、英数字加下划线串:^\w+$ 

 15、E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 

16、URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 
或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$

17、邮政编码:^[1-9]\d{5}$

 18、中文:^[\u0391-\uFFE5]+$

 19、电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$

 20、手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$

 21、双字节字符(包括汉字在内):^\x00-\xff

 22、匹配首尾空格:(^\s*)|(\s*$)(像vbscript那样的trim函数)

23、匹配HTML标记:<(.*)>.*<\/\1>|<(.*) \/> 

 24、匹配空行:\n[\s| ]*\r

 25、提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

 26、提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

 27、提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?

 28、提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)

 29、提取信息中的中国手机号码:(86)*0*13\d{9}

 30、提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}

 31、提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}

 32、提取信息中的中国邮政编码:[1-9]{1}(\d+){5}

 33、提取信息中的浮点数(即小数):(-?\d*)\.?\d+

 34、提取信息中的任何数字 :(-?\d*)(\.\d+)? 

 35、IP:(\d+)\.(\d+)\.(\d+)\.(\d+)

 36、电话区号:/^0\d{2,3}$/

 37、腾讯QQ号:^[1-9]*[1-9][0-9]*$

 38、帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

 39、中文、英文、数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$ 

常用正则表达式转自网友:http://www.cnblogs.com/wenanry/archive/2010/09/06/1819552.html

posted on 2015-09-27 12:38  精品唯居  阅读(142)  评论(0编辑  收藏  举报