雪山凌狐教程 - 笔记
type: channel
link: http://fox-9.com/tag/%E7%AC%94%E8%AE%B0/
items: 【精品】python 的 re 模块学习笔记

【精品】python 的 re 模块学习笔记
type: item
date: 2020-01-02T20:21:00+08:00
description: python 的 re 模块学习笔记：match(正则表达式，源文本，[修饰符]) ，匹配到返回 SRE_Match 对象，匹配不到返回 None。可以用 group() 方法输出匹配到的内容，用 span() 方法输出匹配的范围，索引从 0 开始。该函数从源文本的开头开始匹配，如果开头就不匹配就无法匹配出结果。修饰符。类似 re.I，re.S 这样，在网页匹配中，前两者使用较多。re.I 表示忽略大小写，re.S 表示使。匹配包括换行符在内的所有字符（不用就无法匹配会换行那种文本）search(正则表达式，源文本，[修饰符]) ，跟 match 相比不是从文本开头开始匹配，更常用，返回第一个成功匹配的结果一个 SRE_Match 对象，匹配不到返回 None。如果有很多匹配结果呢？可以使用如下命令：findall(正则表达式，源文本，[修饰符]) ，可以返回所有匹配到的结果，更加常用，找不到返回 None，找得到返回一个列表 list，里面的每一个元素是一个元组匹配结果，如果有子匹配文本的话，则元组中的元素就是子匹配文本，类似长这样：[(‘/2.mp3’, ‘任贤齐’, ‘沧海一声笑’), (‘/3.mp3’, ‘齐秦’, ‘往事随风’), (‘/4.mp3’, ‘beyond’, ‘光辉岁月’), (‘/5.mp3’, ‘陈慧琳’, ‘记事本’), (‘/6.mp3’, ‘邓丽君’, ‘但愿人长久’)]对应取出即可。如果要替换匹配到的内容成新内容，可以使用如下命令，比什么 replace 好用许多：sub(正则表达式，要替换成的内容，源文本)这个命令还有一个特别的用法，就是用来匹配源文本中影响后续正则匹配的标签，将他们变为空文本比如 标签这样的，去掉之后，让源文本更清爽，再进行匹配的时候正则表达式可能就简短许多了。compile(正则表达式) 命令可以将正则表达式进行提前预编译，变成一个正则表达式对象，主要是用来后续复用使用的。如果后续需要反复使用该正则表达式，用了这个命令之后，会返回一个对象，比如命名为 s。则后续如果用这个正则表达式进行正则匹配源文本 1、源文本 2、源文本 3 时，在他们的匹配命令的正则表达式参数位置，放上这个 s 就可以了。compile 命令也可以传入修饰符，这样在后续 serach()、findall() 等命令中就不需要额外再传修饰符了，很方便。感谢大家的收看，我们下期再见！