码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式规则

时间:2018-12-18 19:32:17      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:正则表达   str   开头   连接   结果   解释   字符   贪婪模式   左右   

写前,说一下目的,工作上时不时要用到正则,但又不愿意花时间去理解,都是直接度娘。现在为了一劳永逸,记录下正则的规则。

1、literal 指匹配字符串字面值。

例:‘literal‘ 指匹配字符‘literal‘;‘burning‘指匹配字符‘burning

2、reg1| reg2 指符合匹配reg1或者匹配reg2的

例:‘a|A‘指 匹配字母a 不区分大小写 ;‘b|B‘指  匹配字母b 不区分大小写

3、. 指匹配任何字符(\n除外)

例:‘a.a‘指匹配字符左右都为‘a‘的字符串 如:‘aaa‘;‘aba‘;‘a2a‘等

4、^指匹配字符串起始部分 

例:‘^say‘指匹配以‘say‘开头的字符串

5、$ 匹配字符串终止部分

例:‘you$‘指匹配以‘you‘结尾的字符串

 

6、* 匹配 0 次或者多次前面出现的正则表达式 

例:‘6*‘指匹配‘6‘;‘66666‘的字符串;或没有‘6‘的情况

7、+ 匹配 1 次或者多次前面出现的正则表达式

例:‘6+‘指匹配至少包含一个‘6‘的字符串

8、?匹配 0 次或者 1 次前面出现的正则表达式 

例:‘6?‘指匹配最多包含一个‘6‘的字符串

9、{N}匹配 N 次前面出现的正则表达式 

例:‘[0-9]{11}‘指匹配11位数字的字符串;‘[A-Za-z0-9]{11}‘指匹配11位数字或字母的字符串

10、{M,N}匹配 M~N 次前面出现的正则表达式 

例:‘[0-9]{6,11}‘指匹配6到11位数字的字符串;‘[A-Za-z0-9]{6-11}‘指匹配6到11位数字或字母的字符串

11、[…] 匹配来自字符集的任意单一字符

例:‘[0-9]{6,11}‘指匹配6到11位数字的字符串;‘[A-Za-z0-9]{6-11}‘指匹配6到11位数字或字母的字符串

12、[..x?y..] 匹配 x~y范围中的任意单一字符

例:‘[0-9]‘指匹配0到9的字符串;‘[A-Za-z]‘指匹配英文字母(包含大小写)的字符串

13、[^…] 不匹配此字符集中出现的任何一个字符,包括某一范围的字符(如果在此字符集中出现)

例:‘[^0-9]‘指匹配非数字的字符串;‘[^0-9A-Za-z]‘指匹配非数字且非英文字母的字符串;

14、(*|+|?|{})? 用于匹配上面频繁出现/重复出现符号的非贪婪版本(*、+、?、{})

解释:
贪婪模式:就是在整个表达式匹配成功的前提下,尽可能多的匹配,也就是所谓的“贪婪”,通俗点讲,就是看到想要的,有多少就捡多少,除非再也没有想要的了。
非贪婪模式:就是在整个表达式匹配成功的前提下,尽可能少的匹配,也就是所谓的“非贪婪”,通俗点讲,就是找到一个想要的捡起来就行了,至于还有没有没捡的就不管了。

 

字符串:‘Thu Feb 15 17:46:04 2007::uzifzf@dpyivihw.gov::1171590364-6-8‘

 

表达式:.+(\d+-\d+-\d+)
结果:
Match 1
Full match 0-61 `Thu Feb 15 17:46:04 2007::uzifzf@dpyivihw.gov::1171590364-6-8`
Group 1. 56-61 `4-6-8`
(Group1 匹配到的是`4-6-8`)

 

表达式:.+?(\d+-\d+-\d+) # 注意,在加号后面,加了"?"
结果:
Match 1
Full match 0-61 `Thu Feb 15 17:46:04 2007::uzifzf@dpyivihw.gov::1171590364-6-8`
Group 1. 47-61 `1171590364-6-8`
(Group1 匹配到的是`1171590364-6-8`)

 

 

 

字符串:aa<div>test1</div>bb<div>test2</div>cc

 

表达式:<div>.*</div>
结果:<div>test1</div>bb<div>test2</div>

 

表达式:<div>.*?</div>
结果:<div>test1</div>(这里指的是一次匹配结果,所以没包括<div>test2</div>)

 

15、(…) 匹配封闭的正则表达式,然后另存为子组 

例:([0-9]{3})?,f(oo|u)bar  匹配最多有一个三位数连接着‘foobar‘或‘fubar‘

 

正则表达式规则

标签:正则表达   str   开头   连接   结果   解释   字符   贪婪模式   左右   

原文地址:https://www.cnblogs.com/liaoxt/p/10138700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!