zoukankan      html  css  js  c++  java
  • day26 Pyhton 复习re模块和序列化模块

    # re
        # 正则表达式
            # 元字符
            # 量词
            # 贪婪匹配与惰性匹配
                # 元字符量词
                # 元字符量词?  在量词规范内,遇到一个x就停下来
                # .*?x (.如果是第一个元素,那么它一定会从第一个元素开始取,直到遇到x)
        # re模块
    #findall  *****  找所有,返回列表,(优先显示分组中的内容)
    ret = re.findall('a.*?c','abbbccccabcabbcabbcc')
    print(ret)#['abbbc', 'abc', 'abbc', 'abbc']
    #search ***** 找第一个,返回变量,通过group取值,(通过group(组的序号)来获取组中内容)
    ret = re.search('a.*?c','abbbccccabcabbcabbcc')
    print(ret.group())#abbbc
    ret = re.search('a(.*?)c','abbbccccabcabbcabbcc')
    print(ret.group(1))#bbb
    #match *** 在正则表达式的前面加上^,其他的都和search相同
    ret = re.match('a(.*?)c','abbbccccabcabbcabbcc')
    print(ret)
    #split *** 根据正则做字符串的切割,如果有分组,会保留分组中的内容
    ret = re.split('(a.*?)c','abbbccccabcabbcabbcc')
    print(ret)#['', 'abbb', 'ccc', 'ab', '', 'abb', '', 'abb', 'c']
    #sub/subn ***
    ret = re.sub('(a.*?)c','|','abbbccccabcabbcabbcc',1)
    print(ret)#|cccabcabbcabbcc
    ret = re.subn('(a.*?)c','|','abbbccccabcabbcabbcc')
    print(ret)#('|ccc|||c', 4)
    #compile **** 在同一个正则表达式需要多次使用的时候,提前编译来节省时间
    ret = re.compile('a.*?c')
    res1 = ret.findall('abbbccccabcabbcabbcc') # 是不是用了和上面那条正则
    print(res1)#['abbbc', 'abc', 'abbc', 'abbc']
    res2 = ret.search('abbbccccabcabbcabbcc') # 是不是也用了和上面那条正则
    print(res2.group())#abbbc
    #finditer **** 返回一个迭代器,所有的结果要通过迭代才能取到,节省内存
    ret = re.finditer('a.*?c','abbbccccabcabbcabbcc')
    for i in ret:
      print(i.group())
    #abbbc
    #abc
    #abbc
    #abbc
    # 扩展 -- 爬虫
    # ret = re.compile('a.*?c')
    # res = ret.finditer('abbbccccabcabbcabbcc')
    # for r in res:
    # print(r.group())

    #
    序列化模块 :
    # 将基础数据类型存到文件中再读出来
    # 将基础数据类型通过网络传给其他程序,再由其他程序读取并使用
    # json
    # 优点 : 所有语言通用
    # 缺点 : 支持的数据类型少
    # 方法和用法:
    # dump
    # dump(dict/list,文件句柄) # 文件句柄一定是以写的形式打开的
    # load
    # dict/list = load(文件句柄) # 文件句柄一定是以读的形式打开的
    # dumps
    # str = dumps(基础数据类型)
    # loads
    # 基础数据类型 = loads(str)
    # pickle
    # 优点 : 支持python中几乎所有数据类型
    # load文件的时候,可以load多条数据,也可以dump多条数据
    # 缺点 : 只支持在python程序之间交换数据
    # dump(任意一个需要写到文件中的变量,文件句柄) # 文件句柄,wb/ab形式打开
    # load(文件句柄) # 文件句柄是以rb形式打开
    # pickle 的dump可以dump多次,load可以load多次
    # dumps
    # bytes = dumps(基础数据类型)
    # loads
    # 基础数据类型 = loads(bytes)
     
     
     
     
     
     
  • 相关阅读:
    机器学习---聚类算法
    机器学习解决问题的框架
    17个机器学习的常用算法!
    机器学习---理论篇
    golang 调用cmd执行EXE
    队列(自定义列表实现自定义队列)
    栈Stack(使用自定义链表实现自定义栈)
    链表( 自定义链表)
    队列(动态数组实现自定义队列)
    栈Stack(动态数组实现自定义栈)
  • 原文地址:https://www.cnblogs.com/pythonz/p/9983195.html
Copyright © 2011-2022 走看看