• re模块的使用
• 字符匹配、数量表示、边界表示
• 正则表达式的高级用法
• 贪婪与非贪婪模式
re正则表达式模块
• match(正则表达式,待匹配字符串),
用于正则匹配检查,如果待匹配字符串能够匹配正则表达式, 则match方法返回匹配对象,>否则返回None
采用从左往右逐项比较匹配 • group()方法
用来返回字符串的匹配部分
字符 | 描述 |
---|---|
. | 匹配除"\n"之外的任意单个字符 |
\d | 匹配0-9之间的一个数字,等驾驭[0-9] |
\D | 匹配一个非数字字符,等价于[^0-9] |
\s | 匹配任意空白字符,如空格、制表符“\t”、换行“\n”等 |
\S | 匹配任意非空白字符 |
\w | 匹配任意单词字符(包含下划线),如a-z,A-Z,0-9,_ |
\W | 匹配任意非单词字符,等价于[^ a-zA-Z0-9_] |
[ ] | 匹配[ ]中列举的字符 |
^ | 取反 |
字符 | 描述 |
* | 一个字符可以出现任意次,也可以一次都不出现 |
+ | 一个字符至少出现一次 |
? | 一个字符至多出现一次 |
{m} | 一个字符出现m次 |
{m,} | 一个字符至少出现m次 |
{m,n} | 一个字符出现m到n次 |
边界表示
字符串与单词边界
字符 | 描述 |
^ | 用于匹配一个字符串的开头 |
$ | 用于匹配一个字符串的结尾 |
\b | 用于匹配单词的边界 |
\B | 用于匹配非单词边界 |
匹配分组
字符 | 描述 |
| | 表示或, 匹配|连接的任何一个表达式 |
() | 将括号中字符作为一个分组 |
\NUM | 配合分组()使用,引用分组NUM(NUM表示分组的编号)对应的匹配规则 |
(?P<name>) | 给分组起别名 |
(?P=name) | 应用指定别名的分组匹配到的字符串 |
高级语法
search: 从做到右在字符串的任意位置搜索第一次出现匹配给定郑泽表达式的字符
findall:在字符串中查找所有匹配成功的组,返回匹配成功的结果列表
finditer;在字符串中查找所有正则表达式匹配成功的字符串,返回iterator迭代器
sub:将匹配到的数据使用新的数据替换
split:根据制定的分隔符切割字符串, 返回切割之后的列表
贪婪与非贪婪模式
贪婪模式:正则表达式引擎默认是贪婪模式,尽可能多的匹配字符
非贪婪模式:1与贪婪模式相反,尽可能少的匹配字符
2在表示数量的 "*", "?", "+", "{m,n}"符号后面加上?, 使贪婪变成非贪婪