re模块

import re# [] 范围匹配  中间 用-来连接
# re.findall("[a-zA-Z0-9]","a ab abc abcd a123c")
# 如果要匹配 符号-  要写表达式的左边或右边
# print(re.findall("[-ab]","a ab abc abcd a123c a--"))# 重复匹配 表达式的匹配次数
# * 表示 任意次数  所以0次也满足
print(re.findall("[a-zA-Z]*","a ab abc abcdssdsjad a123c"))
#                               [a-zA-Z]*
# +    一次或多次
print(re.findall("[a-zA-Z]+","a ab abc abcdssdsjad a123c"))
#                                                  [a-zA-Z]+
# ?  0次或1次
print(re.findall("[a-zA-Z]?","a ab abc abcdssdsjad a123c"))# {1,2} 自定义匹配次数  {1,} 1到无穷 {,1} 0到1次
print(re.findall("[a-zA-Z]{1,2}","a ab abc abcdsdssjad a123c"))# + * 贪婪匹配  表达式匹配的情况下 尽可能的多拿     (一直匹配 直到不满足为止)# print(re.findall("\w*","jjsahdjshdjssadsa dssddsads"))
# print(re.findall("\w+","jjsahdjshdjssadsa dssddsads"))
# 非贪婪匹配 在表达式的后面加上?
# print(re.findall("\w?","jjsahdjshdjssadsa dssddsads")) # 非贪婪匹配
#text = """<img src="https://ss1.baidu.com/6ONXsjip0@#4$QIZ8tyhnq/it/u=2972240716,3143951157&amp;fm=55&amp;app=22&amp;f=JPEG?w=121&amp;h=81&amp;s=0FB86D855C624C9C0AB1F57203008031" class="c-img c-img6">"""# 演示贪婪匹配
print(re.findall('src="(http.*?)"',text))# 非贪婪匹配 在表达式的后面加上?
print(re.findall('src="http.*"',text))# print(re.findall("[a-zA-Z]*","a|ab|abc|abcd|a123c"))# 分组 加上分组 不会改变原来的规则 仅仅是将括号中的内容单独拿出来了
print(re.findall("([a-zA-Z]+)_dsb","aigen_dsb cxx_dsb alex_dsb zxx_xsb _dsb"))# re模块中常用的函数
# match 从字符串开始处匹配  只找一个
print(re.match("\w*","abc").group(0)) # 获取匹配成功的内容
# group 用来获取某个分组的内容 默认获取第0组 就是整个表达式本身
print(re.match("([a-zA-Z]+)(_dsb)","aigen_dsb cxx_dsb alex_dsb zxx_xsb _dsb").group(2))
print(re.match("\w*","abc").span()) # 获取匹配成功的内容的索引print(re.search("\w*","abc").group())
# 从全文范围取一个
print(re.search("([a-zA-Z]+)(_dsb)","xxx aigen_dsb cxx_dsb alex_dsb zxx_xsb _dsb"))
# 从开始的位置开始匹配
# print(re.match("([a-zA-Z]+)(_dsb)","xxx aigen_dsb cxx_dsb alex_dsb zxx_xsb _dsb").group())
# 将正则表达式 编译成一个对象 往后可以不用在写表达式 直接开始匹配
# print(re.compile("\w*").findall("abcd"))# print(re.split("\|_*\|","python|____|js|____|java"))# 替换
print(re.sub("python","PYTHON","js|python|java"))
# 用正则表达式来交换位置
text = "java|C++|js|C|python"
# text1 = "java|C++|js|C|python"
# 将整个内容分为三块 java     |C++xxxxxx|      python
partten = "(.+?)(\|.+\|)(.+)"
".+?ahgshags"
# ?:用于取消分组  就和没写括号一样
# partten = "(?:.+?)(\|.+\|)(.+)"
# print(re.search(partten,text).group(0))
print(re.sub(partten,r"\2\3\1",text))# 当要匹配的内容包含\时
text = "a\p"
"\p"print(text)
print(re.findall(r"a\\p",text))

subprocess模块

import subprocess
# 就用来执行系统命令
import oscmd = r'dir D:\上海python全栈4期\day23 | findstr "py"'
# res = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
# # 从管道中读取数据   管道就是 两个进程通讯的媒介
# # print(type(res.stdout.read().decode("GBK")))
# print(res.stdout.read().decode("GBK"))
# print(res.stderr.read().decode("GBK"))dir = r'dir D:\上海python全栈4期\day23'
find = 'findstr "py"'
"""
stdout 输出管道
stdin 输入管道
stderr 错误管道
"""
res1 = subprocess.Popen(dir,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)res2 = subprocess.Popen(find,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=res1.stdout)
# 从管道中读取数据   管道就是 两个进程通讯的媒介
# print(type(res.stdout.read().decode("GBK")))
# print(res1.stdout.read().decode("GBK"))
print(res2.stderr.read().decode("GBK"),"33333")# 简单总结  subprocess 主要用于执行系统指令 (启动子进程) 与os.system的不同在于
# subprocess 可以与这个子进程进行数据交换

re模块剩余和subprocess模块相关推荐

  1. subprocess模块最全笔记

    文章目录 subprocess subprocess.Popen 类 Popen 对象的属性 Popen 对象的方法 subprocess模块的其他方法 subprocess模块的其他属性 subpr ...

  2. 【Python】python之subprocess模块详解

    [Python]python之subprocess模块详解 subprocess模块 subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/out ...

  3. python3使用subprocess_python3中使用subprocess模块执行外部命令

    一. subprocess模块介绍 1. subprocess模块可以替代os模块下的os.system和os.popen等操作方法 2. subprocess模块在python2和python3上的 ...

  4. re的剩余模块和subprocess模块

    今天学习了re的剩余模块和subprocess模块 一.re的剩余模块 #[] 范围匹配 中间 用-来连接 re.findall('[a-zA-Z0-9]','a ab asdf sadf asdf ...

  5. subprocess模块详解

    原文地址 Python多进程方面涉及的模块主要包括: subprocess:可以在当前程序中执行其他程序或命令: mmap:提供一种基于内存的进程间通信机制: multiprocessing:提供支持 ...

  6. python subprocess模块 命令执行

    subprocess模块中定义了一个Popen类,通过它可以来创建进程,并与其进行复杂的交互.查看一下它的构造函数: __init__(self, args, bufsize=0, executabl ...

  7. Python subprocess模块

    subprocess subprocess模块介绍 subprocess模块是一个可以将系统内的命令结果赋值给变量并打印, 还可以输出命令执行状态,subprocess可以单独将 命令输出结果与执行状 ...

  8. python subprocess 模块

    subprocess 模块中有一个功能Popen , 可以在代码中调用系统的命令 其功能比os.system 更加强大 代码示例: command = 'python -u %s/generalMak ...

  9. Python常用模块之subprocess模块

    当我们需要调用系统的命令的时候,最先考虑的os模块.用os.system()和os.popen()来进行操作. 但是这两个命令过于简单,不能完成一些复杂的操作,如给运行的命令提供输入或者读取命令的输出 ...

最新文章

  1. 让我们定义一个ggplot版本的华夫饼图吧
  2. amd一点也不yes_最不值得买的高端显卡!RTX3080从真香变成了鸡肋?
  3. 8086CPU写汇编的规则
  4. 让我们回顾一下如何通过JDBC插入Clob或Blob
  5. MFC版链表实现稀疏多项式相加减
  6. Android Themes与Styles实践
  7. 跨路由器 网段访问rtsp_实验演示:三层交换机与路由器对接
  8. eclipse运行go test_在 Go 中发现竞态条件 (Race Conditions)
  9. Solidity陷阱:以太坊的随机数生成
  10. 集群ddos_《DNS攻击防范科普系列2》 -DNS服务器怎么防DDoS攻击
  11. 【转】win10安装caffe教程
  12. 彻底禁止电脑弹出广告的方法(以2345好压为例)
  13. c语言学习——设圆半径r = 1.5,圆柱高h = 3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积
  14. mysql的my.cnf常用配置
  15. C#汉字转拼音首字母
  16. spring bean的init、destory的几种方法及生命周期
  17. spring 注解练习
  18. 今日头条校园招聘历年经典面试题汇总:C++研发岗
  19. 基于8086微机原理核心考点(考试必背)
  20. 2021固原一中高考成绩查询榜,【固原一中高考成绩实现新突破】

热门文章

  1. Kotlin可能带来的一个深坑,系列篇
  2. 【渝粤教育】广东开放大学 广东开放大学学习指引 形成性考核 (28)
  3. Android获取硬件设备详细信息
  4. 计算机网络按分布范围分类可分为局域网,计算机网络按照覆盖范围可以分为局域网...
  5. 原来iPhone自带Respring(注销重启桌面)功能
  6. redies 须知小结
  7. next主题搭建相册(无需安装插件,代码即可实现)
  8. 医疗管理系统-检查项管理
  9. 资金安全责任险对个人账户负责?
  10. 互联网日报 | 7月21日 星期四 | 脉脉CEO再回应点评招聘评论真实性;​微信版本再更新;上半年前十位SUV品牌销量排名出炉...