# 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)
 
 
 
 
 
 

day26 Pyhton 复习re模块和序列化模块的更多相关文章

  1. sys模块和序列化模块

    import sysprint(sys.version) #查看当前pycharm版本print(sys.path )#返回模块的搜索路径print(sys.platform )#返回操作系统的版本p ...

  2. os模块,序列化模块,json模块,pickle模块

    一.os模块os.system("bash command") 运行shell命令,直接显示 os.popen("bash command).read() 运行shell ...

  3. python之路----模块与序列化模块

    认识模块 什么是模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用pyt ...

  4. 常用模块一(os模块、序列化模块(json和pickle))

    一.os模块 os模块是与操作系统交互的一个接口. import os # 和文件和文件夹的操作有关 os.makedirs('dirname1/dirname2') # 可生成多层递归目录 os.r ...

  5. python(时间模块,序列化模块等)

    一.time模块 表示时间的三种方式: 时间戳:数字(计算机能认识的) 时间字符串:t='2012-12-12' 结构化时间:time.struct_time(tm_year=2017, tm_mon ...

  6. python基础编程:生成器、迭代器、time模块、序列化模块、反序列化模块、日志模块

    目录: 生成器 迭代器 模块 time 序列化 反序列化 日志 一.生成器 列表生成式: a = [1,2,3,3,4,5,6,7,8,9,10] a = [i+1 for i in a ] prin ...

  7. python学习Day27--time模块、sys模块、os模块和序列化模块

    [知识点] 1.时间模块: (1)时间戳时间,格林威治时间,float数据类型 英国伦敦的时间:1970.1.1     0:0:0 北京时间:1970.1.1     8:0:0 (2)结构化时间, ...

  8. collections模块、时间模块、random模块、os模块、sys模块、序列化模块、subprocess模块

    一.collections模块 1.其他数据类型 在内置数据类型(str.dict.list.tuple.set)的基础上,collections模块还提供了了几个额外的数据类型:Counter.de ...

  9. random模块、os模块、序列化模块、sy模块s、subprocess模块

    random随机数模块 random.random( ) 随机产生一个0-1之间的小数 print(random.random()) # 0.31595547439342897 random.rand ...

随机推荐

  1. 下载安装gradle

    1.登录官网:www.gradle.org,进入到下图的界面: 2.点击Install Gradle,跳转到下一个界面后: 3.下载 4.下载成功后,解压到任意位置,将路径添加到path路径下,选择我 ...

  2. Typora第一次使用

    一级标题 二级标题 三级标题 三个# + 空格 分割线 三个- 三个* 粗体 ctrl + B 斜体 ctrl + I 删除线 引用 一个大于号就可以了 图片: ! + [] + (图片路径) 超链接 ...

  3. Lambda表达式看这篇基本就够用了

    本文讯] 2020.05.08  polo  写博不易,尊重知识! Lambda  是java8 引入的一个新特性,闭包,又叫函数式接口,下面介绍下,常用的lambda表达式方式: 所谓的将函数作为一 ...

  4. 数据库连接池设计和实现(Java版本)

    1 前言 数据库连接池是目前系统开发必须面对和考虑的问题,原理并不复杂,主要是减少重复连接数据库的代价:在系统中创建预期数量的数据库连接,并将这些连接以一个集合或类似生活中的池一样管理起来,用到的时候 ...

  5. CSS -- 元素简介

    一.元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1 ...

  6. 【吴恩达课程使用】anaconda (python 3.7) win10安装 tensorflow 1.8 cpu版

    [吴恩达课程使用]anaconda (python 3.7) win10安装 tensorflow 1.8 目前tensorflow是只支持到python3.6的,anaconda最新版本已经到pyt ...

  7. yum 安装提示公钥安装失败,Public key for .x86_64.rpm is not instal 手动导入公钥方案

    Linux 中yum 安装google-chrome-stable时,报错如下,提示公钥安装失败,原因是 GPG公钥获取失败,无法连接获取到 https://dl-ssl.google.com/lin ...

  8. k8s集群监控(十一)

    Weave Scope   在我之前的docker监控中<Docker容器监控(十)–技术流ken>就已经提到了weave scope. Weave Scope 是 Docker 和 Ku ...

  9. 云计算openstack核心组件——horizon Web管理界面(10)

    一.horizon 介绍: 理解 horizon Horizon 为 Openstack 提供一个 WEB 前端的管理界面 (UI 服务 )通过 Horizone 所提供的 DashBoard 服务 ...

  10. redis入门指南(七)—— 安全、协议、管理工具及命令属性

    写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 安全 1.可以使用bind参数绑定一个地址,使redis只接受这个地址的连接. 2.使用requ ...