• re模块


    import re
    
    
    # 字符串查找
    # findall 匹配所有结果
    # re.findall('正则表达式','需要匹配的字符串')
    ret = re.findall('d','asdffda23432')
    print(ret) # 返回值类型:列表
    
    # search 只匹配第一个结果
    ret = re.search('d+','asdffda23432')
    print(ret) # 返回值类型:正则匹配结果的对象或者None 返回个数1 如果匹配成功返回对象,如果没有匹配上返回None
    print(ret.group())# 返回 Match 对象 通过group来获取匹配到的结果 如果没有匹配上使用group会报错
    
    # match 匹配开头
    ret = re.match('ad+','a1123asdffda23432')
    print(ret.group()) # 返回 Match 对象 需要group取值 如果没有匹配上使用group会报错
    
    # 字符串替换
    # sub
    # re.sub('正则表达式','新数据','需要匹配的字符串',['替换次数'])
    ret = re.sub('d','','abdsfs3asfde33',1)
    print(ret) # 返回替换后的字符串
    # subn
    # re.subn('正则表达式','新数据','需要匹配的字符串',['替换次数'])
    ret = re.subn('d','','abdsfs3asfde33adfa4')
    print(ret) # 返回值:('替换后的字符串',替换了几次)
    
    # 字符串切割
    # split
    # re.split('正则表达式','字符串')
    ret = re.split('d+','aba123abb45kkk4')
    print(ret) # 返回值:列表
    
    # 进阶
    # compile
    # 因为正则表达式也需要编译,如果我们每次使用finall,search,match都使用一样的正则表达式,每次都需要编译会比较耗时
    # 所以我们使用compile提前编译好,来提供给finall,search,match使用,这样正则表达式就只需要编译一次,比较节省时间
    ret = re.compile('d')
    res = ret.findall('fasfa1232fdsaf434afds3w') # 相当于 re.findall('d','fasfa1232fdsaf434afds3w')
    print(res)
    
    # finditer
    ret = re.finditer('d','fasfa1232fdsaf434afds3w')
    print(ret) # 返回一个迭代器,节省内存 效果相当于findall 迭代器返回 Match 对象 需要group取值
    for r in ret:
        print(r.group())
    
    
    # 分组
    ret = re.findall(r'www.(.*?).com','www.baidu.com')
    print(ret) # 结果:['baidu']
    # 原因:在python中,如果使用了()(分组模式),那么python会默认优先显示分组内的内容
    ret = re.findall(r'www.(?:.*?).com','www.baidu.com') # 如果要取消分组内容优先显示,那么需要在分组表达式开始的时候加上?:
    print(ret) # 结果:['www.baidu.com']

    # 分组命名 命名:?P<name> 使用:?P=name
    import re
    ret = re.search(r'<(?P<tag_name>w+)>(w+)</(?P=tag_name)>','<a>asdfsda</a>')
    print(ret.group('tag_name'))

  • 相关阅读:
    promise请求数据(all方法)
    右键的点击事件
    微信小程序的接口调用封装
    微信小程序HTTP接口请求封装
    微信小程序得路由跳转
    管理系统得操作与解决思路
    HTTP协议
    动态语言概述
    AsynclAwait
    三种跨域解决方案
  • 原文地址:https://www.cnblogs.com/wtil/p/11040466.html
Copyright © 2020-2023  润新知