今日学习内容:
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)返回的执行的状态码