入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

正则表达式

创建时间:2016-08-27 投稿人: 浏览次数:854

1:      [ 所有备选字符 ] :一个中括号只能代表一位字符

2:      [^xxxx]                        :表示除了xxxx都行 ^放在前面是非的意思,放在中间就被当做普通字符匹配。

 

3:-符号:当被选字符是连续的时候,就可以用来表示一个范围数字[0-9]字母[a-zA-Z]汉字[u4e00-u9fa5]

 

4:预定义字符集:使用简化的字符来定义常用字符集。

[0-9]àd 数字                  空字符às(代表一切看不见的字符) , ,空格

[0-9a-zA-Z_]àW 字母数字下划线


5:原文如果对应位置上既不是范围,也不是预定义字符,那么它就是一个原文,代表转义,因为在正则表达式中.代表任意字符。


6数量词:规定一个字符出现次数的量词

语法:{min,max}最小个数-最大个数 

 {num}如果只写一个那么就是固定长度

{min,}至少min个


7:特殊的数量词:+,*,?,()

?:一次或没有         *:没有或多次或一次   +:一次或多次   ():分组

   

8:指定匹配位置:

^:放在这个正则表达式的开头,表示以xxxx开始。

$:放在整个正则表达式的结尾,表示以xxxx结束

9:预判符

?=:前一个字符之后必须紧跟xxx字符。

?!:前一个字符之后必须没有xxx字符。

10:模式

贪婪模式:.+  .*  默认先匹配整个字符串,再缩小范围。

懒惰模式:(.+?),(.*?)  从第一个字符开始,向后扩展范围,匹配到就不再匹配了。

通过如上的正则匹配方式,可以制造一个<a>标签的网络爬虫。


常用的正则表达式

匹配中文字符的正则表达式:[u4e00-u9fa5]

匹配双字节字符(包括汉字在内):[^x00-xff]

匹配空行的正则表达式: [s| ]*

匹配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}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}(-d{1,4})?$

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

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

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

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

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

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*13d{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、电话区号:/^0d{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]+$

 


 

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。