遇见正则表达式(2)

昨天我已经埋好了伏笔,今天来重点学习re模块。

学习re模块,主要是学习该模块的几个重要的方法。

re.findall

re.findall(pattern,string,flags=0),pattern为匹配正则表达式,string为需要匹配的字符串,flags为控制正则表达式的匹配方式。其返回值是匹配结果的列表。

《遇见正则表达式(2)》

可以看到,其对字母大小写敏感,如果要忽略字母大小写,可以把flags设置为re.I,I为IGNORECASE的缩写,re.I也可写为re.IGNORECASE。

《遇见正则表达式(2)》

可以看到,现在已经可以匹配大写字母了。

其中的flags参数还可以设置为re.M(多行匹配),re.S(使.可以匹配换行符)等等

re.match

re.match(pattern,string,flags=0)方法匹配的是字符串的起始位置,匹配成功则返回匹配对象,否则返回None

《遇见正则表达式(2)》

匹配对象的span=(0,6)是什么意思呢?其实它是指所匹配的字符串在原始字符的位置,从0开始,遵循左闭右开的原则。

如果需要获取匹配结果,可以使用group(num=0)方法

《遇见正则表达式(2)》

当参数num=0时,返回的是匹配的完整字符串,当num=1时,返回的是匹配的第一个子字符串,依次类推。

《遇见正则表达式(2)》

我们还可以使用groups()方法来查看其子字符串组成的元组

《遇见正则表达式(2)》

re.search

re.search(pattern,string,flags=0)方法返回的是第一个成功匹配的字符串

《遇见正则表达式(2)》

可以看到,re.search()和re.match()的区别就是re.search()不一定要从字符串的起始位置开始匹配,而re.match()则一定要从字符串的起始位置开始匹配。

注意,re.match()和re.search()都只匹配一次。

《遇见正则表达式(2)》

re.compile

re.compile()用来生成一个正则表达式对象也就是pattern,供 match() 和 search() 这两个函数使用。

《遇见正则表达式(2)》

re.split

看到这个,大家应该能够想得到字符串中的split方法,这是re模块的分割方法。

看个例子

《遇见正则表达式(2)》

如果把正则表达式括起来,会发生什么呢?

《遇见正则表达式(2)》

分割出去的字符(串)也以列表的形式返回。

re.sub

re.sub(pattern,repl, string, count=0,flags=0)是用来替换字符串的方法,repl为替换的字符串,string为要被替换的原始字符串,count为替换次数,注意0不是替换0次,而是不限次数替换。

《遇见正则表达式(2)》

re.finditer

re.finditer(pattern, string, flags=0)方法和re.findall差不多,只不过其返回的是迭代器。

《遇见正则表达式(2)》

今天的内容就是这些,大家敲代码去吧,祝学习愉快!!!

《遇见正则表达式(2)》 python小白联盟

    原文作者:雨路浅歌
    原文地址: https://www.jianshu.com/p/8941f1c553a5
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞