正则表达式
正则表达式一种让字符串处理更简单的工具(本质是做字符串匹配的)
re模块python提供的专门使用正则表达式的相关函数
fullmatch(正则表达式,字符串) - 让正则表达hi和字符串进行完全匹配,如果匹配失败,结果为None。
正则是一个特殊的字符串
- js中的正则:/正则表达式/
- python的正则:r’正则表达式’
普通字符 - 表示字符本身
特殊字符
| 特殊字符 | 含义 |
|---|---|
| . | 匹配一个任意字符 |
| \w | 匹配任意一个数字、字母或则下划线(只针对ascii码有效) |
| \d | 匹配任意一个数字字符 |
| \D | 匹配任意一个非数字字符 |
| \s | 匹配任意一个空白字符 |
| \S | 匹配任意一个非空白字符 |
| [字符集] | 匹配字符集中出现的任意一个字符 |
| [A-Z] | 匹配任意一个大写字母字符 |
| [a-z] | 匹配任意一个小写字母字符 |
| [a-zA-Z] | 匹配任意一个字母字符 |
| [0-9] | 匹配任意一个数字字符 |
| [\u4e00-\u9fa5] | 匹配任意一个中文字符 |
| [a-zA-Z0-9] | 匹配任何字母及数字 |
| [^字符集] | 取不在字符集中任意的一个字符 |
检测符号
单词边界:字符串开头、字符串结尾、凡是能区分出两个不同单词的符号
注意:检测类的符号不影响匹配的长度,只是在匹配成功的时候做进一步的检测
| 检测字符串 | 含义 |
|---|---|
| ^ | 检测^所在的位置是否是字符串开头,例, |
| \b | 检测是否是单词的边界 |
| $ | 检测$所在的位置是否是字符串结尾 |
| \B | 检测是否不是单词的边界 |
匹配次数
| 符号 | 含义 |
|---|---|
| * | 匹配0次或多次 |
| + | 匹配1次或多次 |
| ? | 匹配0次或1次 |
| {n} | 匹配n次 |
| {m,n} | 匹配m到n次 |
| {m,} | 至少m次 |
| {,n} | 最多n次 |
贪婪和非贪婪
在匹配次数不确定的情况下,匹配模式分为两种:贪婪和非贪婪
贪婪:默认都是贪婪的(在能匹配到的前提下匹配次数尽可能多)
*、+、?, {M,N}、{M,}、{,N}
非贪婪:在匹配次数不确定的时候,次数后面加问号,匹配就是非贪婪的。(在能匹配到的前提下匹配次数尽可能少的匹配)
*?、+?、??、{M,N}?、{M,}?、{,N}?
分支
符号: |(或者)
格式:正则1|正则2|正则3…
分组
符号:()(整体)
整体操作
重复
\M - 重复前面第M个分组匹配到的内容(M从1开始)
转义符号: 在具有特殊功能或者特殊意义的符号前加,让功能消失。
注意:独立存在有特殊功能的符号在[]中功能会自动消失
(?i):忽略大小写
(?s):单行匹配
(?m):多行匹配,默认的
单行和多行匹配:单行匹配.可以和\n匹配,多行匹配不行。
1026

被折叠的 条评论
为什么被折叠?



