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

最新文章

  1. ionic 微信分享值各种坑
  2. Java IO1:IO和File
  3. struts2初体验
  4. SQL Server への接続を許可するファイアーウォール設定
  5. windows 程序设计自学:添加图标资源
  6. iOS 学习 - 7.限制 TextField 输入字符长度
  7. NYOJ-93汉诺塔(三)
  8. CMSIS Example - osTimer osTimerCreate osTimerStart
  9. 在eclipse.ini中指定jdk的方式
  10. 输入一个字符串,输出时数字倒序。例如:输入"hello2345wo7654",输出则为"hello5432wo4567"
  11. 快速搭建Android 开发环境-使用ADT Bundle
  12. C# 语言的多线程编程,完全是本科OS里的知识
  13. winform控件跨线程委托
  14. mssql update from
  15. iOS 使用 UIMenuController 且不隐藏键盘的方法
  16. Python3 的序列
  17. UNIX环境高级编程——UNIX基础知识
  18. Linux 句柄是什么 ?
  19. iView -- TimePicker 自定义修改时间选择器选择时间面板样式
  20. C++标准模板库之vector

热门文章

  1. 本地ubuntu 往阿里云ubuntu服务器传文件
  2. python pickle库
  3. jzoj 3567. 【GDKOI2014】石油储备计划
  4. 调整JavaScript抽象的迭代方案
  5. C# .Net 委托和事件的区别
  6. 你想了解的分布式文件系统HDFS,看这一篇就够了
  7. git如何在远程某个分支的基础上新建分支
  8. 云计算openstack共享组件——Memcache 缓存系统(4)
  9. Vue开发电子书app
  10. Spring boot +Thymeleaf 搭建springweb