美文网首页python小白联盟
遇见正则表达式(2)

遇见正则表达式(2)

作者: 雨路浅歌 | 来源:发表于2018-08-07 18:15 被阅读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小白联盟

    相关文章

      网友评论

        本文标题:遇见正则表达式(2)

        本文链接:https://www.haomeiwen.com/subject/ciwavftx.html