今天课上的主要内容本打算是模块的,可是看起来好难,今天先讲了讲正则表达式,但是讲了1天也没特别明白
先写下模块吧,什么是模块,一组功能的集合
你要和某个东西打交道,而这个东西本身和python没有关系,这个东西本身就存在
py有一个功能的集合,专门负责和这个东西打交道
模块的类型
内置模块 不需要我们自己安装的,解释器自带的
第三方模块 需要我们自己安装的模块
自定义模块 我们自己写的模块
import os 模块
os。remove 删除文件
os。rename 重命名文件
模块就是给我们提供功能
这个要操作的内容本来就存在
模块只不过是py提供给我们曲操作这个内容的方法
re模块
在py中使用正则表达式
今天就教了正则表达式
正则表达式是一个独立的规则,独立的语言
正则表达式是什么?能做什么?
从大段的文字中找到符合规则的内容
open打开文件
读文件 str
从一长串的字符串中找到所需要的XXX位数字
一个字符一个字符的读
判断某个字符串是否完全符合规则
验证这个手机号是否合法
给这个手机号发送一个验证码
用户收到验证码 填写验证码
完成注册
正则表达式
从大段的文字中找到符合规则的内容
爬虫 从网页的字符串中获取你想要的数据
日志分析 提取 年-月-日-------xxxx
日志格式(包括但不限于)
2018-1-1 10:00:00 xxxxxx
判断某个字符串是够完全符合规则
表单验证: 手机号 qq号码 邮箱 银行卡 身份证号 密码
正则表达式 只和字符串打交道
正则表达式的规则
只有规则,没有逻辑 字符串 从字符串中找到符合负责的内容
字符组:【】写在括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的
【0-9】匹配数字
【a-z】匹配小写字母
【A-Z】匹配大写字母
【4-6】这样就匹配一段,字母数字都可以
[a-zA-Z0-9_]匹配大小写字母数字下划线
65-90 字符串大写字母
97-122 字符串小写字母
转义符
w w
元字符
\w 匹配数字字母下划线 Word关键字[a-zA-Z0-9_]
\d 匹配所有数字 digit [0-9]
\s 匹配所有的空白符 回车/换行符 制表符(tab) 空格 space 【\n\t】
匹配换行符 回车 \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就停止
print(r‘\\n‘)
print(r’\n‘)
关于字符串挪到py中的转义问题:只需要在工具中测试完毕,确认可以匹配上之后,挪到py中在字符串的外面加上r,r‘’即可