day_16 正则表达式
# re模块是用来操作正则表达式的
# 什么是'正则'
# 能做什么事情
# ------》
# 字符串的规则
# 给字符串定一个规则
# 来帮助我们
#1.检测某一段字符串是否符合规则
#2,从一大段文字中将符合规则的匹配出来
# 爬虫
# 只和字符串相关
#正则应用:在注册也输入的内容是否合法
#不过不判断,也会传送非法内容,就会占用资源
# 规则:
# 字符组
# 元字符
# 量词
# 简单的字符串的筛选和匹配
# 规则
# 待检测一段字符串
# 字符组[]的概念: 描述的是一个字符位置上的内容规则
#[0123456]
# [0-8]
# [4-6]
# [9-6] 错误
# 他们的大小根据ASCII码值来排序
# 数字 [0-9]
# 大写字母[a-z]
# 小写字母[A-Z]
# 加数字大小写[0-9A-Za-z] 里面无顺序
# 在字符组当中 - 是有特殊意义的,如果我们想取消这个横杠的特殊意义 [1\-9]
#需要使用\作为转移符
#\d 元字符
# 字符组之外的其他带有特殊字符的方法 [0-9] == \d
# 如果匹配[1-9] 就不能用\d
# [0-9A-Za-z_] \w表示标识符
# 空格本身匹配空格
# tab制表符 \t
# 回车换行符 \n
# 所有以上特殊东西 \s
# 匹配一个单词的边界 \b hello world o\b 以o结尾 \bo以o开头
#反义词
# \W 除了字母数字下划线所有
# \D 除了数字的所有
# \S 除了空白的所有
# . 除了换行符之外的所有字符
# \d \w \s(\n\t)
# \D \W \S
# 匹配所有 : [\D\d] [\W\w] [\S\s]
# 非字符组 : [^123] 除了123之外都匹配
#开始符和结束符
# ^ $
# ^hello hello hello hello ->>>>> hello
# ^hello$ 什么也不匹配 除非上面下面一样的
# h^hello 永远不存在这种的
# 或的概念
# 123|456 竖杠左右边的是一个全集, 永远把相对长的放在左侧
# 分组的概念
# www\.(baidu|oldboy).\com
# 量词:尽可能多的匹配
# ^1[3-9]\d{9}$
# {n} 出现n次
# {n,} 至少出现n次
# {n,m} 表示出现 n-m次
# ?
# + 至少有一个
# * 全部匹配也可以,如果一个都没有,也算一次
# 匹配整数[1-9]\d*|0
# 匹配小数 \d+\.\d+
# 匹配小数或者整数 (\d+\.\d+)|(\d+\.\d+)
# findall 优先显示分组中的内容
# split 保留被切掉的分组内的内容
# search 可以通过组的索引取值
# 取消分组的特殊行为(?:正则)
例题:
# 1、匹配整数或者小数(包括正数和负数)
# 2、匹配年月日日期 格式2018-12-6
# 3、匹配qq号
# 4、长度为8-10位的用户密码 : 包含数字字母下划线
# 5、匹配验证码:4位数字字母组成的
# 6、匹配邮箱地址