目录
1 正则表达式
- 什么是正则表达式
- 正则表达式分类
2. re模块应用
- 模块基本用法
- 贪婪与非贪婪模式
- 常用正则表达式
课堂笔记
1. 正则表达式
1.1 什么是正则表达式
- 正则表达式(regular expression)是一种工具,广泛用于对字符串格式的匹配。
- 被匹配的字符串具有某种特征,正则就利用这种特征去进行匹配,如QQ邮箱格式 (数字[email protected])
1.2 正则表达式分类
-
普通字符
- 字⺟、数字、汉字、下划线、以及没有特殊定义的符号。
- 正则表达式对普通字符匹配时,只匹配与自身相同的字符
-
元字符
- 用于表述一些特殊含义及功能
表达式 匹配 . 对除换行符以外的其他所有字符进行匹配 | 逻辑或操作符 [] 匹配字符集中的一个字符,与|相似 [^] 取反操作,对上面操作取反,^须放在括号最前面 - 定义一个[]里的一个字符区间,如[a-z] \ 转义操作符,对其后特殊字符转义 () 分组操作符,()里表示一个分组,对其作为一个整体进行单独匹配 -
转义字符
- 一些无法直接书写的特殊字符,在前加上 \
表达式 匹配 \r, \n 回车,换行符 \t 制表符 \\ 匹配 \ ^ 匹配 ^ \$ 匹配 $ \. 匹配 . \* 匹配 * \? 匹配 ? … … -
预定义匹配字符集
表达式 匹配 \d 匹配任意数字 \w 匹配任意字母、数字或下划线中的一个,即[a-zA-z0-9_] \s 匹配空格、制表符、换页符等任意一个空白字符 \D 对\d取反,即[^\d] \W 对\w取反,即[^\w] \S 对\s取反,即[^\s] -
重复匹配
- 字符个数一般不止一个,故需要进行多个匹配。
- 例如:1234一般匹配:\d\d\d\d,可简化为:[\d]{4}
表达式 匹配 {n} n次匹配 {m, n} 至少包含m个,之多为n个 {m, } 至少包含m个,无上限 ? 出现0次或1次 + 至少出现1次 * 出现0次或任意多次 -
位置匹配
- 对特殊开头、结尾或边界等情况进行匹配
表达式 匹配 ^ 开头匹配,指定开头字符 $ 结尾匹配,指定结尾字符 \b 边界匹配,即单词和空格之间的部分 \B<