day20

今日学习内容:

re模块

subprocess模块

re是什么?

  正则表达式:就是一些带有特殊含义的符号或者符号的组合,他的作用就是对字符串进行过滤,

 在一堆字符串中找到你所关心的内容,你就需要告诉计算机你的过滤规则是什么样的,通过什么方

 式来告诉计算机,就通过正则表达式

  学习正则表达式各符号所表示的含义:

  w:数字、字母、下划线

  W:除数字、字母、下划线

  s:所有不可见字符

  S:所有可见字符

  d:所有数字

  D:所有非数字

   :只匹配换行符

   :匹配制表符

  .:匹配任意字符除了( )外

  匹配重复字符*,+,?,{}

  *:任意次数

  +:重复一次或者多次

  ?:重复2次或1次

  {m,n}最少m次,最多n次

  ^:匹配行首

  $:匹配行尾

  [^0-9]取反(除了0-9外的其他字符)

  :匹配一个单词的边界,也就是指单词间和空格间的位置(单词边界,单词末尾)

  贪婪匹配:*+

  会一直匹配到不满足条件为止,用问号可以来阻止贪婪匹配

  ()用于正则表达式分组(group)不会改变原来表达式的意义

  效果:优先去除括号内的内容

  (?:)这样就取消了()的优先级

  re模块常用方法:

  re.findall()查找所有满足条件的字符  返回一个列表

  re.serch()查找返回第一个匹配的字符串,结果封装为对象

  re.match()匹配行首返回值与search相同

  对search和match匹配的结婚IP,通过group取值

  re.split()切分

  re.compile将正则表达式封为一个正则对象,可以重复使用。

  re.sub()对字符串进行替换

subprocess模块:

  sub:子

  process:进程

  什么是进程?

  正在进行中的程序,每当打开一个程序,就会开启一个进程,每个进程包含运行程序所需的所有资源

 正常情况下,不可以跨进程访问数据,但是有些情况下就需要访问别的进程数据,提供一个叫管道的对

 象,专门用于跨进程通讯。

  作用:

  用于执行系统命令

  总结:

  好处:可以获取指令的执行结果

  执行指令时,可以在进程中,可以避免造成主进程卡死。

  常用方法:

  .run(指令,shell=True,stdout = subprocess.PIPE)返回一个表示执行结果的对象

  .call(指令,stdout = subprocess.PIPE)返回的执行的状态码

原文地址:https://www.cnblogs.com/yaoxiaofeng/p/9474071.html