模块篇,正则
biubiu
什么是,模块 一组功能的集合
你要和某个东西打交道,而这个东西本身和python没有关系,这个东西本身就存在
Python 提供了一个功能的集合 专门负责和这个东西打交道
模块的类型
内置模块 不需要我们自己安装的解释器自带的
第三方模块 需要我们自己安装的模块
自定义模块 我们自己写的模块
谁把所有的硬件 管理起来的 是操作系统
文件 在 硬盘上储存着
熊硬盘上读文件
Inmort os 模块
Os,remove ()删除文件
Os.rename()重命名文件
模块时间上就是给我们提供功能的存在
这个要操作的内容本来就存在
模块只不过是python 提供给我们去操作这个内容的方法
为什么要有模块
模块怎么用
Re模块
在python 中使用正则表达式
正则表达式
先学习正则表达式
是一种独立的规则,独立的语言
正则表达式是什么 能做什么
1 把一个文件中的所有手机号都能找出来
从打断的文字中找到符合规则的内容
Open 打开文件
读文件 str
从一长串字符串中找到所有的十一位数字
一个字符一个字符的读
- 输入手机号
(1) 验证这个手机号码是否合法,判断某个字符串是否完全符合规则
(2) 给这个手机号发送一个验证码
(3) 用户收到验证码 填写验证码
(4) 完成注册
正则表达式
从大段的文字中找到符合规则的内容
爬虫 从网页的字符串中获取你想要的数据
日志分析 提取 2018-8.10 10:------花的所有钱
什么是日志
2018-8-12 10:00:00 楼下早餐 3.00
判断某个字符串是否完全符合规则
表单验证,:手机号码 qq号码 邮箱 银行卡 身份证号密码
正则表达式 只和字符串打交道
正则表达式的规则
负责 字符串 从字符串中找到符合规则的内容
字符组:[] 写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的
[0-9] 匹配数字
[a-z] 匹配小写字母
[A-Z] 匹配大写字母
[8-9]
[a-z A-Z] 匹配大小写字母
[a-zA-Z0-9] 匹配大小写字母+数字
[a-zA-Z0-9_]匹配数字字母下划线
转义符号 \
元字符
\w 匹配数字字母下划线 word 关键字 [a-]zA-Z0-9_]
\d 匹配所有的数字 digit [0-9]
\s 匹配所有的空白符 回车\n
匹配换行符 回车 \n
匹配制表符 tab \t\
\W \D \S 和\w \d \s 取反
[\s\S] [\d\D] [\w\W] 三组全集 意思是匹配所有字符
\b表示单词的边界
和转义字母相关的 元字符
\w \d \s(\n\t) \b \W \D \S
^ &
^ 匹配一个字符串的开始
$ 匹配一个字符串的结束
. 表示匹配 除换行符之外的所有字符
[] 只要出现在中括号内的内容都可以被匹配
[^] 只要不出现在中括号中的内容都可以被匹配
# 有一些特殊意义的元字符进入字符中会回复他本来的意义: . | [ ]()
a|b 或 符合a 规则的或者b 规则的可以被匹配
如果 a 规则是b规则的一部分,且 a规则比b规则要苛刻,
就把a规则写在前面
将更复杂的 更长的规则写在最前面
分组 表示给几个字符加上量词 约数的需求的时候
就给这些量词分在一个组
量词
{n} 表示 这个量词之前的字符出现n次
{n,} 表示 表示这个量词 之前的字符至少出现n次
{n,m} 表示这个量次之前的字符出现n-m次
? 表示 匹配量词之前的字符出现 0次 或者 1次
表示可与可恶
+ 表示匹配量次 之前的字符出现 1 次 或者 多次
* 表示 匹配量词之前的字符出现 0次 或者 多次
匹配整数 \d+
匹配小数 \d+\.\d+
匹配小数或者整数
\d+\.\d+|\d+
\d+(\.\d+)?
匹配身份证号码: [1-9]\d{16}[\dx]|[1-9]\d{14}
[1-9]\d{14}(\d{2})[\dx]?
正则表达式的匹配特点: 贪婪匹配
他会在允许的范围内去最长的结果
非贪婪模式/惰性匹配:在量次的后面加上?
.*?x 匹配任意非换行符字符任意长度 知道遇到x就停止
关于 字符串挪到python 中的转义的问题:只需要在工具中测试完毕,确认可以匹配上之后,挪到python中在字符串外面p