• python正则表达式


    python正则表达式

    match函数

    re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none

    函数语法

    re.match(pattern, string, flags=0)
    # pattern:匹配的正则表达式
    # string:要匹配的字符串
    # flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
    
    • 1
    • 2
    • 3
    • 4
    匹配对象方法描述
    group(num=0)匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组
    groups()返回一个包含所有小组字符串的元组,从 1 到 所含的小组号
    span()返回匹配值的下标
    start()返回开始位置
    end()返回结束位置

    常用匹配符

    符号描述
    .匹配任意一个字符(除了\n
    []匹配列表中的字符
    \w匹配字母、数字、下划线,即a-z,A-Z,0-9,_
    \W匹配不是字母、数字、下划线
    \s匹配空白字符,即空格(\n\t
    \S匹配不是空白的字符
    \d匹配数字,即0-9
    \D匹配非数字的字符
    *匹配零次或多次
    +匹配一次或多次
    ?匹配零次或一次
    {m}重复m次
    {m,n}重复m到n次
    {m,}至少m次
    {,m}至多m次
    \转义字符
    ^匹配字符串开头
    $匹配字符串结尾
    \b匹配一个单词的边界
    \B匹配非单词的边界
    |搜索多个字符串
    ()将括号中的字符作为一个分组
    \num引用分组num匹配到的字符串,从1开始计数
    (?p)分别起组名
    (?p=name)引用别名为name分组匹配到的字符串

    search函数

    re.search扫描整个字符串并返回第一个成功的匹配。

    函数语法

    re.search(pattern, string, flags=0)
    # pattern:匹配的正则表达式
    # string:要匹配的字符串
    # flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等
    
    • 1
    • 2
    • 3
    • 4

    re.match与re.search的区别

    re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;

    re.search匹配整个字符串,直到找到一个匹配。

    sub函数

    re.sub用于替换字符串中的匹配项。

    函数语法

    re.sub(pattern, repl, string, count=0, flags=0)
    # pattern:正则中的模式字符串
    # repl:替换的字符串,也可为一个函数
    # string:要被查找替换的原始字符串
    # count:模式匹配后替换的最大次数,默认 0 表示替换所有的匹配
    
    • 1
    • 2
    • 3
    • 4
    • 5

    subn函数sub函数功能几乎完全一样,sub函数返回替换后的结果,subn函数返回一个元组,元组的第1个元素是替换后的结果,第2个元素是替换的总数。

    compile函数

    用于编译正则表达式,生成一个正则表达式(Pattern)对象,供match()search()这两个函数使用。

    re.compile(pattern[, flags])
    
    • 1
    • pattern : 一个字符串形式的正则表达式
    • flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
      1. re.I 忽略大小写
      2. re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
      3. re.M 多行模式
      4. re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
      5. re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
      6. re.X 为了增加可读性,忽略空格和 # 后面的注释

    findall函数

    在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。

    注意:matchsearch是匹配一次findall匹配所有。

    函数语法

    findall(string[, pos[, endpos]])
    
    • 1

    参数:

    • string : 待匹配的字符串。
    • pos : 可选参数,指定字符串的起始位置,默认为 0。
    • endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。

    split函数

    split函数用于根据正则表达式分隔字符串。

    函数语法

    re.split(pattern, string[, maxsplit=0, flags=0])
    # pattern:匹配的正则表达式
    # string:要匹配的字符串
    # maxsplit:分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数
    # flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    上线flask记录
    数字全息干涉重建算法研究
    kubernetes学习记录之ConfigMap & Secret
    Toolformer论文阅读笔记(简略版)
    uni-app微信小程序上拉加载,下拉刷新
    智慧能源一体化管控平台
    leetcode:100相同的数
    9. 一个SpringBoot项目运行
    JavaFx 使用字体图标记录
    一文读懂 Shiro 登录认证全流程
  • 原文地址:https://blog.csdn.net/im34v/article/details/126792061