python小白联盟

遇见正则表达式(2)

2018-08-07  本文已影响3人  雨路浅歌

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

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

re.findall

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

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

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

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

re.match

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

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

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

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

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

re.search

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

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

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

re.compile

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

re.split

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

看个例子

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

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

re.sub

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

re.finditer

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

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

python小白联盟
上一篇下一篇

猜你喜欢

热点阅读