• Python正则库 re


    compile()

    • 参数
      • string: 正则表达式字符串
      • flag: 匹配模式,多个值可以使用按位或运算符| 表示同时生效
        • re.I: 忽略大小写
        • re.M: 多行模式,改变^和$的行为
        • re.S: 点任意匹配模式,改变.的行为
        • re.L: 使预定字符类\w \W \b \B \s \S 取决于当前区域设定
        • re.U: 使预定字符类\w \W \b \B \s \S \d \D 取决于unicode定义的字符属性
        • re.X: 详细模式。这个模式下正则表达式可以是多行,忽略空白符,并可以加入注释
    • 返回
      • Pattern对象,可以进行重复利用,以下的各种re.xxx匹配方法都可以对应的pattern.xxx方法

    match()

    • 参数
      • pattern: 正则表达式字符串或者Pattern对象
      • string: 原始字符串
      • flag:
    • 返回值
      • 注意是从头开始匹配,如果第一个字符就没匹配则直接返回None,如果匹配成功,返回一个match对象
      • 如果没有分组,直接用返回对象调用group()方法即可获取到匹配的子串
      • 如果有分组,返回对象调用group()方法不带参数,则获取的是整个匹配的子串,如果带参数group(index),其中index表示第index个分组,index从1开始,则返回的是对应分组的子串
    • 参数
      • pattern: 正则表达式
      • string: 原始字符串
      • flag:
    • 返回值
      • 与match()方法类似,但是不是必须从第一个字符开始匹配,整个字符串中任意位置匹配成功都可以,返回第一个匹配的字串,match对象,可使用match对应的方法提取字符串
      • 如果没有分组,直接用返回对象调用group()方法即可获取到匹配的子串
      • 如果有分组,返回对象调用group()方法不带参数,则获取的是整个匹配的子串,如果带参数group(index),其中index表示第index个分组,index从1开始,则返回的是对应分组的子串

    findall()

    • 参数
      • pattern: 正则表达式
      • string: 原始字符串
      • flag:
    • 返回值
      • 如果没有分组,则所有匹配上的子字符串组成的list
      • 如果只有一个分组,则是每个匹配的子串中分组部分组成的list
      • 如果有多个分组,则是由所有匹配的子串的分组tuple组成的list

    finditer()

    • 参数
      • pattern: 正则表达式
      • string: 原始字符串
      • flag:
    • 返回值
      • 以迭代器的形式返回能匹配的全部Match对象,需要循环调用Match对象的group()方法提取匹配的字符串

    split()

    • 参数
      • pattern: 正则表达式
      • string: 原始字符串
      • maxsplit: 最大分割次数
      • flag:
    • 返回值
      • 所有被正则表达式分割出来的子串组成的list,注意:结果中可能会包含空字符串

    sub()

    • 参数
      • pattern: 正则表达式
      • repl:
        • 如果是字符串:可以使用 \id或者\g或者\g引用分组,其中id表示分组序号,从1开始;name表示分组名称,如果对分组进行了命名的话。
        • 如果是函数:会传入一个Match对象,返回一个字符串进行替换,注意这个字符串无法引用分组
      • string: 原始字符串
      • count: 被替换的次数
    • 返回值:
      • 被替换后的字符串

    subn()

    • 类似sub()
    • 返回的是元组:(sub()的结果, 替换的次数)

    前面说的匹配结果中的Match对象

    • 属性
      • string: 匹配时用到的文本
      • re: 匹配时用到的Pattern对象
      • pos: 正在表达式开始搜索的索引
      • endpos: 正则表达式结束搜索的索引
      • lastindex: 最后一个被捕获的分组在文本中的索引。如果没有被捕获的分组,则返回None
      • lastgroup: 最有一个被捕获的分组的别名。如果这个分组没有别名或者没有被捕获的分组,则返回None
    • 方法
      • group([group1,group2...]): 获取一个或多个分组截获的字符串,如果传入多个参数,则以元组的形式返回
        • group1, group2...: 参数可以是分组编号,或者分组名
        • 分组编号0表示整个匹配的字符串
        • 分组编号从1开始对应具体的分组
      • groups([default]): 以元组形式返回全部分组截获的字符串,相当于group(1, 2...),default表示没有截获字符串的组的默认值,默认为None
      • groupdict([default]): 返回有别名的组组成的字典,没有别名的组不在返回结果中
      • start([group]): 返回指定的组截获的子串在文本中的起始索引,group默认为0
      • end([group]): 返回指定的组截获的子串在文本中的结束索引,group默认为0
      • span([group]): 返回(start(group), end(group))
      • expand(template): 将匹配到的分组代入template中,可以使用 \id或者\g或者\g引用分组
  • 相关阅读:
    pip安装pyinstaller失败的解决方法
    导药仪端子接线方式
    聊聊信号的回勾和过冲(转)
    玩不好触发,就不算会用示波器
    TI DS125BR401A 官方DEMO板鉴赏+学习+分析
    导药仪射频卡连接线制作方式
    解决ISE14.7在win10中不稳定的问题
    VS2013编译VTK7.1.1
    QT5.8.0与VS2013环境配置
    The Architecture of Open Source Applications---VTK
  • 原文地址:https://www.cnblogs.com/yarightok/p/15962236.html
Copyright © 2020-2023  润新知