正则表达式
2018-01-18 本文已影响0人
郭大侠
![](https://img.haomeiwen.com/i9796871/620302fa0a7aa5f4.png)
正则表达式即用来进行字符串匹配。获取符合自己期望的信息
![](https://img.haomeiwen.com/i9796871/edbc4e6210f0ff92.png)
常规匹配:
![](https://img.haomeiwen.com/i9796871/9dadfae004450465.png)
泛匹配:使用.*来表示中间任意字符
![](https://img.haomeiwen.com/i9796871/eab4880eabcdc46d.png)
对group进行划分:注意()内的字符需是同一类型
![](https://img.haomeiwen.com/i9796871/fc563590eaa2a968.png)
贪婪模式和非贪婪模式:.*与.*?(从左到右泛匹配时匹配到何时停止)
![](https://img.haomeiwen.com/i9796871/0785091cb5ca55f9.png)
![](https://img.haomeiwen.com/i9796871/ba0e190f845110fb.png)
有换行的情况:.*无法匹配换行符,添加参数re.S之后可以匹配任意的字符
![](https://img.haomeiwen.com/i9796871/aef7c245e9c39ae6.png)
![](https://img.haomeiwen.com/i9796871/4a73498606b20625.png)
转义:使用\来转义
![](https://img.haomeiwen.com/i9796871/aa29a2e11ebbb3a5.png)
search与match方法的差别
![](https://img.haomeiwen.com/i9796871/cb3219de5aea67cd.png)
注意search仍然可以用^和$来表示开头和结尾,但是必须要和content首尾相同,否则无法匹配。
*与?一个表示匹配0或多个之前的字符,另一个表示匹配0或多个之前的片段。
re.sub方法:
re.sub
替换字符串中每一个匹配的子串后返回替换后的字符串。
![](https://img.haomeiwen.com/i9796871/02121d6200c8d651.png)
r表示保留原生字符。\1表示group1。
![](https://img.haomeiwen.com/i9796871/41e8b154d193f2a9.png)
strip(剥去)方法:
![](https://img.haomeiwen.com/i9796871/a5e42f9363826b0c.png)
![](https://img.haomeiwen.com/i9796871/85f208b059ce41fa.png)
使用compile将正则表达式保存为模式,方便多次使用
![](https://img.haomeiwen.com/i9796871/835a8cbb4cc68db4.png)