概述
一:在开发中会有大量的字符串处理工作,其中经常会涉及到字符串格式的校验;例如:如何判断一个字符串是不是手机号
二:正则表达式是一个特殊的字符序列:用来描述某个规则
三:正则表达式的大致匹配过程是:依次拿出表达式(规则)和文本中的字符比较,如果每个字符串都能匹配,则匹配成功;一旦有匹配不成功的字符串则匹配失败
四:它能帮助你方便的检验一个字符串是否与某种模式匹配,也叫正规表示法、规则表达式、常规表示法等等,常简写成RE(Regular Expression)
re模块
正则表达式并不是Python的一部分,使用时需要导入re模块:import re
一:match(匹配)
1.使用match方法进行匹配操作:re.match尝试从字符串的起始位置匹配一个模式
2.re.match(正则表达式,要匹配的字符串)
- match方法的第一个参数接收的是描述某个规则的字符串
- 第二个参数是要匹配的字符串
- 从左到右开始匹配
3.re.match()是用来进行匹配检查的方法;若正则表达式与字符串规则匹配,则返回匹配对象(Match Object),否则返回None。
4.匹配对象(Match Object)具有一个group方法,用来返回字符串中匹配的部分(如果匹配到数据,可以使用group方法来提取匹配到的数据)
![](https://img.haomeiwen.com/i3983529/57e68ca37e374a5e.png)
![](https://img.haomeiwen.com/i3983529/67d633a37b7871dc.png)
原始字符串
1.正则表达式里使用 '\' 作为转译字符
2.由于正则表达式使用反斜杠来转译特殊字符,而python自身处理字符串时,反斜杠也是用于转译字符,这样就产生了双重转译的问题
- 假如你需要匹配的文本中的字符'\',那么使用正则表达式里将需要4个反斜杠'\\':前两个和后两个分别用于在编程语言里转译成反斜杠,转换成反斜杠后再在正则表达式里转译成一个反斜杠
3.Python中字符串前面加上r表示原生字符串(真实字符串)
4.原生字符串很好的解决了上面的这个问题,有了原始字符串,你再也不用担心是不是漏写了反斜杠
5.'r'是防止字符转译的,如果路径中出现'\t'的话,不加r的话'\t'就会被转译,而加了'r'之后'\t'就能保留原来的样子
![](https://img.haomeiwen.com/i3983529/571385ba48d49b76.png)
![](https://img.haomeiwen.com/i3983529/04785156b86ae6e8.png)
![](https://img.haomeiwen.com/i3983529/7fb0c8c4d3a46d14.png)
![](https://img.haomeiwen.com/i3983529/e8ceba3413376c29.png)
![](https://img.haomeiwen.com/i3983529/b9b7c958fbc64b09.png)
![](https://img.haomeiwen.com/i3983529/259ceecb3c8c7af8.png)
![](https://img.haomeiwen.com/i3983529/6a85b2133442340e.png)
re模块的其他用法
![](https://img.haomeiwen.com/i3983529/b1d3fa9b9dfa1c09.png)
贪婪和非贪婪
![](https://img.haomeiwen.com/i3983529/b6818697f8797c4a.png)
网友评论