- 正则表达式是一种可以让一些复杂的字符串问题变得简单的工具。re模块
- fullmatch(正则表达式,字符串): 判断整个字符串是否满足正则表达式描述的规则(完全匹配),不满足返回Nonamatch(正则表达式,字符串):只匹配字符串开头是否满足正则表达式描述的规则,不满足返回Nona
python 中提供正则表达式的方法:提供一个字符串,字符串内容是一个正则表达式,这个字符串的最前面需要加r search(正则表达式,字符串): 在整个字符串中查找第一个满足正则表达式描述的规则的字串,找不到返回Nonafindall(正则表达式,字符串):获取整个字符串所有满足正则表达式的字串, 返回字符串中满足正则表达式的内容的列表(注意分组问题)finditer(正则表达式,字符串):获取整个字符串所有满足正则表达式的字串, 返回迭代器,迭代器中的元素是匹配对象sub(正则表达式,字符串1, 字符串2):将字符串2中所有满足正则的字串,全部替换成字符串1split(正则表达式,字符串):将字符串中所有满足正则的字串作为切割点,对字符串进行切割正则语法内容
| 匹配类符号 | 约束字符串中某个位置上的字符是什么样的字符 |
|---|---|
| 普通符号 | 在正则表达式中表示字符本身的符号 |
| 特殊符号: | |
| . | 匹配任意一个字符 |
| d | 匹配任意一个数字字符,等价于[0-9] |
| D | 匹配任意一个非数字字符,等价于[^0-9] |
| S | 匹配任意一个非空白字符 |
| s | 匹配任意一个空白字符(换行,空格,制表符) |
| [字符集] | 匹配字符集中任意一个字符 |
| [u4e00-u9fa5] | 匹配任意一个中文 |
| [^字符集] | 匹配非字符集中任意一个字符 |
| 控制次数的符号 | 匹配类符号+次数 |
|---|---|
| * | 任意次数(0次或者多次) |
| + | 至少一次(1次或者多次) |
| ? | 0次或者1次(有或者没有) |
| {n, m} | n~m 范围内 |
贪婪和非贪婪模式:
在匹配次数不确定的时候,匹配次数有贪婪和非贪婪两种模式
- 贪婪模式:默认的贪婪模式:+、*、{M,N}、{M, }、{ , N}
- 贪婪模式:如果多种匹配次数都可以匹配成功,最后取最大的次数进行匹配
| 分支和分组 | |
|---|---|
| 分组 -----> () | 将正则不一部分使用()括起来,表示一个分组,整体控制次数 |
| 重复匹配结果:在正则中使用()添加分组,然后在正则用M来重复钱买你第M个分组的匹配结果 | |
| 捕获:findall函数在正则表达式中有分组的时候,只获取分组匹配的结果 | |
| 分支---->| | 正则1|正则2|正则3|… 相当于或者 |
| 如果正则的部分要进行分支选择,需要将部分分支加() |
| 检测类符号 | 检测符号所在的位置是否符合条件,必须是在匹配成功的前提下才会去检测 |
|---|---|
| b | 单词边界:检测是否b是单词边界。凡是可以将两个单词区分开的符号都是单词边界 |
| ^ | 检测字符串开头 |
| $ | 检测字符串结尾· |
转义字符:
在正则中本身具备特殊功能或者特殊意义的符号前加,让他的功能消失,办成普通字符
[] 也可以让独立存在且有特殊意义的符号功能消失



