1. 什么是模块
你要和某个东西打交道,而这个东西本身和python没有关系,这个东西本身就存在pyhton提供了一个功能的集合(模块), 专门负责和这和东西打交道 模块实际上就是给我们提供功能这个要操作的内容本来就存在,模块只不过是python提供给我们去操作这个内容的方法 模块: 一组功能的集合模块的类型: (1).内置模块: 不需要我们自己安装的,解释器自带的 (2).第三方模块: 需要我们自己安装的模块 (3).自定义模块: 需要我们自己写的
2. 正则表达式
2.1 正则表达式简介 (1) 正则表达式是是一种独立的规则,独立的语言. 正则表达式 只能和字符串打交道 (2)正则表达式的规则: 规则 字符串 从字符串中找到符合规则的内存 (3)正则表达式能干什么? # 1.从大段的文字中找到符合规则的内容(对正则要求较高) # 1>爬虫 从网页的字符串中获取你想要的的数据 # 2>日志分析 提取 2018-8-12 10:---- 花的所有钱 # 什么是日志: # 2018-8-12 10:00:00 楼下早点摊 3.00 # 2.判断某个字符串是否完全符合规则(对正则要求较低) # 表单验证: 手机号 QQ号码 邮箱 银行卡 身份证号 密码
2.2 正则表达式基础
普通字符就表示一个正常的字符
元字符表示它的特殊意义,如果转义元字符,那么这个元字符就失去了特殊意义
# 字符组: [] 写在中括号中的内容,都可以出现在下面的某一个字符的位置上(都是符合规则的) # [0-9] 匹配数字 # [a-z] 匹配小写字母 # [A-Z] 匹配大写字母 # [8-9] [a-f] 顺序必须从前往后 # [A-z] (65-122) 其中91-96是杂质 所以可以写成[a-zA-Z] # [a-zA-Z] 匹配大小写字母 # [a-zA-Z0-9] 匹配大小写字母,数字 # [a-zA-Z0-9_] 匹配数字,字母,下划线 # ascii码表 # 65 - 90[A-Z] 所有的大写字母(占的ascii码位) # 97 - 122[a-z] 所有的小写字母 # 转义符 #
2.3 元字符 # 元字符 # w 匹配数字字母下划线 word关键字 [a-zA-Z0-9_] # d 匹配所有的数字 digit [0-9] # s 匹配所有的空白符: 回车(换行符),制表符,空格 space [ ] # 匹配换行符 回车 # 匹配制表符 tab # 匹配空格 空格(普通字符) # W D S 和w d s取反 # w 匹配非数字字母下划线 # d 匹配非数字 # s 匹配非空白符: 回车(换行符),制表符,空格 # [sS] [dD] [wW] 是三组全集 意思是匹配所有字符 # 表示单词的边界(开始和结尾) # xx 匹配单词开头 # xx 匹配单词结尾 # 和转义字符相关的 元字符 # w d s( ) W D S # ^ $ # ^ 匹配字符串的开头 ^xx # $ 匹配字符串的结尾 xx$ # 一起使用: 判断某个字符串是否完全符合规则 # . 表示匹配 除换行符之外的所有字符 # [] 只要出现在中括号内的内容都可以被匹配 # [^] 只要不出现在中括号中的内容都可以被匹配 # 有一些特殊意义的原字符进入字符组中会恢复它本来的意义(现原形): . | [] () # a|b 或 符合a规则的或者b规则的都可以被匹配 # 如果a规则是b规则的一部分,切a规则比b规则要苛刻|长,就把a规则写在前面 # 将更复杂或更长的规则写在最前面 # () 分组 表示给几个字符加上量词约束的时候,就给这些量词分在一个组
2.4 量词 # 量词(永远是约束元字符的) # {n}表示 这个量词之前的字符出现n次 # {n,}表示 这个量词之前的字符至少出现n次 # {n,m}表示 这个量词之前的字符出现n~m次 # ? 表示匹配量词之前的字符出现 0次 或者 1次 表示某一位可有可无的时候 # + 表示匹配量词之前的字符出现 1次 或者 多次 # * 表示匹配量词之前的字符出现 0次 或者多次
练习题:
(1)匹配整数 d+
(2)匹配小数 d+.d+
(3)匹配小数或者整数
d+.d+|d+
d+(.d+)? (有.就有后面的小数,他们同时出现或者同时不出现)
(4)匹配身份证: [1-9]d{16}[dx]|[1-9]d{14}
[1-9]d{14}(d{2}[dx])?
2.6 贪婪匹配和惰性匹配 # 正则表达式的匹配特点: 贪婪匹配 # 它会在允许的范围内取最长的结果 # 非贪婪匹配(惰性匹配): 在量词后面加上? # .*?x 匹配任意非换行符字符 任意长度 直到遇到x就停止
2.7 几个字符的组合关系: # 字符/元字符 只约束一个字符 # 字符+量词 约束一个字符连续出现的次数 # 字符+量词+? 约束一个字符出现的最少次数 # 字符+量词+?+x 约束一个字符连续出现量词范围内的最少次数,遇到x就立即停止
注意: 关于字符串挪到pyhton中的转移问题: 只需要在工具中测试完毕,确认可以匹配上之后,挪到python中在字符串的外面加上r,r""即可