zoukankan      html  css  js  c++  java
  • re模块

    (?P<name>)
    分组,除了原有的编号外再指定一个额外的别名 (?P<id>abc){2}
    abcabc
    (?P=name)
    引用别名为<name>的分组匹配到字符串 (?P<id>d)abc(?P=id)
    1abc1
    5abc5
    <number>
    引用编号为<number>的分组匹配到字符串 (d)abc1
    1abc1
    5abc5

    re中的特殊分组

     

     

     

     

     

    1、match()

    决定RE是否在字符串刚开始的位置匹配。//注:这个方法并不是完全匹配。当pattern结束时若string还有剩余字符,仍然视为成功。想要完全匹配,可以在表达式末尾加上边界匹配符'$'

    格式:

    re.match(pattern, string, flags=0)

    2、search()

    re.search(pattern, string, flags=0)

    re.search函数会在字符串内查找模式匹配,只要找到第一个匹配然后返回,如果字符串没有匹配,则返回None

           

    • group() 返回被 RE 匹配的字符串
    • start() 返回匹配开始的位置
    • end() 返回匹配结束的位置
    • span() 返回一个元组包含匹配 (开始,结束) 的位置
    • group() 返回re整体匹配的字符串,可以一次输入多个组号,对应组号匹配的字符串。

    3、findall()

    re.findall遍历匹配,可以获取字符串中所有匹配的字符串,返回一个列表。

     格式:

    re.findall(pattern, string, flags=0)

    4、split()

    按照能够匹配的子串将string分割后返回列表。

    可以使用re.split来分割字符串,如:re.split(r's+', text);将字符串按空格分割成一个单词列表。

    格式:

    re.split(pattern, string[, maxsplit])

    maxsplit用于指定最大分割次数,不指定将全部分割。

    5、sub()

    使用re替换string中每一个匹配的子串后返回替换后的字符串。

    格式:

    re.sub(pattern, repl, string, count)

    一些注意点

    1、re.match与re.search与re.findall的区别:

    re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

  • 相关阅读:
    Java Proxy和CGLIB动态代理原理
    Nginx限速模块初探
    200行Java代码搞定计算器程序
    深入理解Java内置锁和显式锁
    使用linux perf工具生成java程序火焰图
    《深入理解Java函数式编程》系列文章
    Java原子变量
    Java Stream API性能测试
    深入理解Java Stream流水线
    对于web前端基础学习的复习总结
  • 原文地址:https://www.cnblogs.com/z18271397173/p/8447085.html
Copyright © 2011-2022 走看看