一.模块 1.什么是模块 是一组功能的集合 2.模块的类型 内置模块; python提供的, 解释器自带的 第三方模块: 需要我们自己安装的 自定义模块: 我们自己写 二.正则表达式 1. 从大段的文字中找到符合规则的内容 2. 判断某个字符串是否完全符合规则 正则测试工具(网址): http://tool.chinaz.com/regex 字符组: []写在里面的内容, 选一个,(要从小 - 大), 这顺序和ord()有关 for i in range(65,91): print(str(i)+":"+chr(i), end=' ') print() for i in range(91,97): print(str(i)+":"+chr(i), end=' ') print() for i in range(97,123): print(str(i)+":"+chr(i), end=' ') ''' 65:A 66:B 67:C 68:D 69:E 70:F 71:G 72:H 73:I 74:J 75:K 76:L 77:M 78:N 79:O 80:P 81:Q 82:R 83:S 84:T 85:U 86:V 87:W 88:X 89:Y 90:Z 91:[ 92:\ 93:] 94:^ 95:_ 96:` 97:a 98:b 99:c 100:d 101:e 102:f 103:g 104:h 105:i 106:j 107:k 108:l 109:m 110:n 111:o 112:p 113:q 114:r 115:s 116:t 117:u 118:v 119:w 120:x 121:y 122:z ''' [0-9] \d [^0-9] \D [0-9a-fA-F] [a-z] [A-Z] [a-zA-Z] [a-zA-Z0-9] [a-zA-Z0-9_] \w [^a-zA-Z0-9_] \W [ \t\n\r\v\f] \s = \n + \t + ' ' + [^ \t\n\r\v\f] \S [\s\S] [\w\W] [\d\D] [^ ] 元字符: \w \W \d \D \s \S \t \n \r \v \f \b ^ $ . [ | ] ( ) [^] 转义符: \ 1. 把特殊转成普通 \ ^ $ . [ | ] ( ) ? + * {n} \d\d|\d 从左到右匹配, 左右两边有包含关系时, 把苛刻的写在前面(因为是先配置|前面的, 没有才找|后面的) \{234}: 当大括号里面是数字时, 大括号需要转义, 转一个括号即可, 或都转义 [[\]]: 当字符组里面的[]成对出现是,要转义一个, 或都转义 2. 把普通转成特殊 w W d D s S t n b 转义符: [] [. [ | ] ( ) ] #如果你记不住这个, 那么也支持你在[]里面给特殊字符加上转义符 - #这个有时候需要转, 有时候不需要.如果你也分不清什么时候, 那么请直接加转义符 量词: {n} {n,} {n,m} ? + * 分组( ): 1.给不止一个字符作为一个整体的时候 2.在python中, 反向引用(优先显示) 匹配特点: 贪婪匹配, 默认会在允许的情况下匹配最长的结果(源于它的回溯算法: 一个一个正则单元去匹配, 匹配第二个正则时再往回找) 惰性匹配, 如何取消贪婪匹配: .*?x: 在量词后面加 ? 号, (先匹配最少个数, 同时关注后面的字符是不是?后面的字符) r'\w+': 在python中: 原样输出, \就不转义了 在正则中: r'\w+' 还是代表元字符 三.练习题 匹配整数: -?\d+ 匹配小数: -?\d+\.\d+ 匹配整数和小数: -?(\d+\.)?\d+ | -?\d+(\.\d+)? 匹配身份证: [1-9]\d{14}(\d{2}[\dx])? 匹配年月日的日期: ^[1-9]\d{0,3}-(1[0-2]|0?[1-9])-(3[01]|[12]\d|0?[1-9])$ 匹配qq号: [1-9]\d{4-11} 匹配11位电话号码: 1[3-9]\d{9} 长度8-10位的用户密码: \w{8,10} 匹配验证码,4位数字字母组成: [0-9a-zA-Z]{4} 匹配邮箱地址: [0-9a-zA-Z][\w.\-]*@[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*\.[a-zA-Z0-9]{2,6} 1.@之前必须有内容且只能是字母(大小写),数字,下划线,减号,点 2.@和最后一个点之间必须有内容且只能是字母,数字,点,减号,且两个点不能挨着 3.最后一个点之后必须有内容且只能是字母, 数字且长度为: 2 <= len <= 6 匹配()里没有()的表达式: \([^)(]+\) 匹配乘除法: \d+[*/]\d+
day16 模块 正则表达式
day16 模块 正则表达式