- 什么是模块
- 一组功能的集合,就是给我们提供功能的,这个要操作的内容本来就存在,模块只不过是python提供给我们去执行功能的方法
- 谁把所有的硬件管理起来的?——操作系统
- 文件在硬盘上存储着,从硬盘读文件必须经过操作系统
- 谁把所有的硬件管理起来的?——操作系统
- 模块的类型
- 内置模块:不需要自己安装,python解释器自带的
- 第三方模块:需要我们自己安装的模块
- 自定义模块:我们自己写的模块
- time模块:在python中操作时间,显示时间,计算时间
- random模块:在python中操作随机数,在Python中生成随机数
- 一组功能的集合,就是给我们提供功能的,这个要操作的内容本来就存在,模块只不过是python提供给我们去执行功能的方法
- 正则表达式
- re模块是python语言中的正则表达式的方法
- 正则能做什么
- 1.从大段的文字中找到符合规则的内容
- 应用:
- 1.爬虫,从网页的字符串中获取你想要的数据
- 2.日志分析
- 什么是日志:2018-08-12 楼下早点摊消费 3.00
- 应用:
- 2.判断某个字符串时候完全符合负责
- 应用:表单验证:电话、qq号码、银行卡号等
- 1.从大段的文字中找到符合规则的内容
- 正则表达式只和字符串打交道
- 正则表达式的规则
- 世界上最好用的正则工具:http://tool.chinaz.com/regex/
- 字符组:[]写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的
- 填写的-两边只能按照ascii表的顺序左小右大
- [0-9a-zA-Z_] 匹配0到9的数字、a到z的大小写字母、下划线
- 转义符
- 元字符
- 与转移字母相关的
- w 匹配数字、字母、下划线;word关键字;[0-9a-zA-Z_]
- d 匹配数字;digit关键字;[0-9]
- s 匹配换行符 、制表符 、空格' ';space关键字;[ ]
- W D S 和w d s 取反
- [sS] [dD] [wW]是三组全集,匹配所有字符串
- 表示单词的边界,匹配单词的开始或结尾,str、str
- ^ $
- ^ 开始符,匹配一个字符串的开始
- $ 结束符,匹配一个字符串的结束
- . 匹配除了换行符之外的任意字符(1个字符)
- [] 字符组 ,[^] 非字符组
- [] 只要出现在中括号内的内容都可以被匹配
- [^] 只要不出现在中括号的内容都可以被匹配,^必须写在最前面
- 有一些有特殊意义的元字符进入字符组中会恢复本 来意义:. | [] ()
- | 或
- a|b 符合a规则或b规则的都可以被匹配,如果a规则是b规则的一部分,且a规则比b规则要苛刻(更长),就把a规则写在前面;将更复杂的或更长的写在前面
- ( ) 分组
- 表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组
- 与转移字母相关的
- 量词(永远约束元字符)
- {n} 表示这个量词之前的字符出现n次
- {n,} 表示这个量词之前的字符至少出现n次
- {n,m} 表示这个量词之前的字符出现n~m次
- ? 表示匹配量词之前的字符串出现0次或1次,表示可有可无的时候
- + 表示匹配量词之前的字符串出现1或多次
- * 表示匹配量词之前的字符串出现0或多次
-
- 特点
- 贪婪匹配:它会在允许的范围内取最长的结果
- 非贪婪模式/惰性匹配:在连词后面加个?,原理是先匹配一个d然后以?后面的8为第二标准
- .*?x 匹配任意非换行符字符任意长度,直到遇到x停止
- 贪婪匹配:它会在允许的范围内取最长的结果
- 关于字符串挪到python中的转移问题:只需在工具中测试完毕,确认可以匹配上之后,挪到python中在字符串的外面加上r即可,即r' '
- 组合使用方法
- 普通字符就表示一个正常的字符
- 元字符表示它特殊的意义,如果转义元字符,那么这个元字符就失去了意义
- 几个字符的组合关系
- 字符/元字符——只约束一个字符
- 字符+量词——约束一个字符连续出现的次数
- 字符+量词+?——约束一个字符连续出现的最少次数
- 字符+量词+?+x——约束一个字符连续出现量词范围内的最少次数,遇到x就立即停止
- 普通字符就表示一个正常的字符
- 练习题
- 匹配整数 d+
- 匹配小数 d+.d+
- 匹配小数或整数 d+(.d+)?或d+.d+|d+
- 匹配身份证号码:[1-9]d{16}[dx]|[1-9]d{14}或[1-9]d{14}(d{2}dX])?