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