re模块

re模块
核心函数和方法
match函数
尝试用正则表达式方法从字符串的开头匹配,如果匹配成功,则返回一个匹配对象;否则返回None
search函数
在字符串中查找正则表达式模式的第一次出现,如果匹配成功,则返回一个匹配对象,否则返回None
group方法
使用match或search匹配成功后,返回的匹配对象可以通过group方法获取匹配内容
findall函数
在字符串中查找正则表达式模式的所有(非重复)出现;返回一个匹配对象的列表
finditer函数
和findall()函数有相同的功能,但返回的不是类表而是迭代器;对于每个匹配,该迭代器返回一个匹配对象
compile函数
对正则表达式模式进行编译,返回一个正则表达式对象
不是必须要用这种方式,但在大量匹配的情况下,可以提升效率
split方法
根据正则表达式中的分隔符把字符分割为一个列表,并返回成功匹配的列表
字符串也有类似的方法,但是正则表达式更加灵活
sub方法
把字符串中所有匹配正则表达式的地方替换成新的字符串

正则表达式
匹配单个字符

记号                 说明
.                    匹配任意字符(换行符除外)
[···x-y···]          匹配字符组里的任意字符
[^ ···x-y···]        匹配不在字符组里的任意字符
\d                   匹配任意数字,与[0-9]同义
\w                   匹配任意数字字母字符,与[0-9a-zA-Z]同义
\s                   匹配空白字符,与[\r\v\f\t\n]同义

匹配一组字符

记号                 说明
literal              匹配字符串的值
re1|re2              匹配正则表达式re1或re2
*                    匹配前面出现的正则表达式零次或多次
+                    匹配前面出现的正则表达式一次或多次
?                   匹配前面出现的正则表达式零次或1次
{M,N}               匹配前面出现的正则表达式至少M次最多N次

其他元字符
记号                 说明
^                    匹配字符串的开始
$                    匹配字符串的结尾
\b                   匹配单词的边界
()                   对正则表达式分组
\nn                  匹配以保存的子组

贪婪匹配

*、+和?都是贪婪匹配操作符,在其后加上?可以取消其贪婪匹配行为
正则表达式匹配对象通过groups函数获取子组

posted @ 2018-02-08 18:30  Guan_zi  阅读(165)  评论(0编辑  收藏  举报