c语言编程笔录

首页 >   > 笔记大全

笔记大全

python3中re模块有什么用

更新时间:2023-10-02

Python3中re模块的作用

Python中的正则表达式模块 —— re, 提供了一套功能强大的正则表达式匹配工具。Python re 模块使 Python 语言拥有了全部的正则表达式功能。

re 模块中有很多方法,它们可以分为三类:

  • 匹配:match()search() 方法
  • 查找:findall()finditer() 方法
  • 替换:sub()subn() 方法

正则表达式匹配方法—— match()

match() 方法将从字符串起始位置匹配一个模式,如果匹配成功,则返回一个匹配对象,否则返回 None 。

    
        import re

        # 字符串
        line = "Cats are smarter than dogs"

        # 简单匹配:检查开头是'Cats'的行
        # 匹配对象
        matchObj = re.match( r'Cats', line, re.I)
        if matchObj:
            print("match --> matchObj.group() : ", matchObj.group())
        else:
            print("No match!!")
    

正则表达式匹配方法—— search()

search()方法用于在字符串中搜索匹配正则表达式的第一个位置,返回match对象。如果匹配成功则返回匹配对象,否则返回None。

    
        import re

        # 字符串
        line = "Cats are smarter than dogs"

        # 搜索匹配的第一个位置
        searchObj = re.search( r'smarter', line, re.M|re.I)
        if searchObj:
            print("search --> searchObj.group() : ", searchObj.group())
        else:
            print("Nothing found!!")
    

正则表达式查找方法—— findall()

findall() 方法在字符串中查找正则表达式匹配的所有子串,并返回一个列表。

    
        import re

        # 字符串
        line = "Cats are smarter than dogs"

        # 查找所有小写字母单词。
        pattern = r'\b[a-z]+\b'
        matchObj = re.findall(pattern, line, re.M|re.I)
        print("findall --> matchObj : ", matchObj)
    

正则表达式替换方法—— sub()

sub() 方法用于替换字符串中的匹配项,返回替换后的字符串。

    
        import re

        # 字符串
        phone = "2004-959-559 # 这是一个电话号码"

        # 删除注释
        num = re.sub(r'#.*$', "", phone)
        print("sub --> Phone Num : ", num)

        # 移除非数字的内容
        num = re.sub(r'\D', "", phone)
        print("sub --> Phone Num : ", num)