zoukankan      html  css  js  c++  java
  • Python常用模块re的使用

    一.re模块的查找方法:
      1.findall 匹配所有每一项都是列表中的一个元素
    import re
    ret = re.findall('d+','asd鲁班七号21313') # 正则表达式,待匹配的字符串,flag
    # ret = re.findall('d','asd鲁班七号21313') # 正则表达式,待匹配的字符串,flag
    # print(ret)

      2.search  只匹配从左到右的第一个,等到的不是直接的结果,而是一个变量,通过这个变量的group方法来获取结果

    import re
    ret = re.search('d+','asd鲁班七号21313')
    print(ret)  # 内存地址,这是一个正则匹配的结果
    print(ret.group())  # 通过ret.group()获取真正的结果
        2.1如果没有匹配到,会返回None,使用group会报错
    ret = re.search('d+','asd鲁班七号')
    print(ret.group())

         2.2所以这个时候调用我要用一下格式

    ret = re.search('d+','asd鲁班七号')
    if ret:
         print(ret.group())

      3.match 从头开始匹配,相当于search中的正则表达式加上^

    ret = re.match('d+','1233asd鲁班七号21313')
    print(ret)

     二.字符串处理扩展

       1.split--切割

    s = 'luban|cheng|an|'
    print(s.split('|'))
    s = 'luban34cheng21an89'
    print(re.split('d+',s))

       2.sub--替换

    ret = re.sub('d+','H','luban34cheng21an89',1)
    print(ret)

       3.subn 返回一个元祖,返回第二个元素是替换的次数

    ret = re.subn('d+','H','luban34cheng21an89')
    print(ret)

     三.re模块的进阶

       1.compile 节省你使用正则表达式解决问题的时间,编译正则表达式,编译成字节码,在多次使用的过程中,不会多次编译

    ret = re.compile('d+') # 已经完成编译
    print(ret)
    res = ret.findall('luban34cheng21an89')
    print(res)
    res = ret.search('1233asd鲁班七号21313')
    print(res.group())

       2.finditer 节省你使用正则表达式解决问题的空间

    ret = re.finditer('d+','1233asd鲁班七号21313')
    for i in ret:
        print(i.group())

     四.总结

    findall   返回列表,找所有的匹配项
    search 匹配就返回一个变量,通过group取匹配到的第一值,不匹配就返回None,group会报错
    match 相当于search的正则表达式中加了一个'^'

    split 返回列表,按照正则规则切割,默认匹配到的内容会被切掉
    sub/subn 替换,按照正则规则去寻找要被替换的内容,subn返回元祖,第二个值是替换的次数

    compile 编译一个正则表达式,用这个结果去search,match,fildall,finditer 能够节省时间
    finditer 返回一个迭代器,所有的结果都在这个迭代器中,需要通过循环+group的形式取值 能够节省内存
  • 相关阅读:
    Checking Types Against the Real World in TypeScript
    nexus pip proxy config
    go.rice 强大灵活的golang 静态资源嵌入包
    几个golang 静态资源嵌入包
    rpm 子包创建学习
    Rpm Creating Subpackages
    ava 类似jest snapshot 功能试用
    ava js 测试框架基本试用
    The Architectural Principles Behind Vrbo’s GraphQL Implementation
    graphql-compose graphql schema 生成工具集
  • 原文地址:https://www.cnblogs.com/shagudi/p/10984338.html
Copyright © 2011-2022 走看看