【精品】python的re模块学习笔记

avatar 2020年1月2日20:21:05 评论 1,722

加入VIP,可以享受无广告视频播放!更可享受教程提前看!详情猛戳:VIP介绍

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()等命令中就不需要额外再传修饰符了,很方便。

 

感谢大家的收看,我们下期再见!

avatar

发表评论

您必须才能发表评论!