1 # 计算器 每天写一个小时
2 # 选课系统 每天一个小时
3 # re模块
4 """正则表达式""" # *****非常重要
5 """
6 所有的模块要经历的两个步骤:
7 1.要操作的概念本身: 正则表达式 例子: 时间
8 2.使用模块去操作它: re time
9
10 """
11 # 学习 正则表达式 本身
12 # 1.什么是正则表达式?
13 # 一种匹配字符串的规则
14 # 例子: input 一串数据
15 # # 判断是不是qq号码: 根据qq号的特征 全数字 5位以上 12位一下,第一位不是0
16 # # 判断是不是身份证号: 18位/ 15位(老身份证号) 第一位不是0,18位的最后以为可能是x或者数字
17 # 有一个文件:
18 # 把文件中所有的手机号都摘取出来
19 # 2.正则表达式能做什么?
20 # 可以定制一个规则:
21 # 来确认某一个字符串是否符合规则
22 # 从大段的字符串中找到符合规则的内存
23 # # 程序领域
24 # 1.登录注册页的表单验证 web开发 要求简单的语法
25 # 2.爬虫 爬虫: 把这个网页下载下来从里面提取一些信息,找到我要的所在信息,做数据分析
26 # 3.自动化开发 # 日志分析
27 # 明确一件事情:
28 # 正则表达式是一种独立的语法
29 # 和python语言无关
30 # 帮助你学习的工具: http://tool.chinaz.com/regex/
31 # 3. 正则表达式的语法:
32 # 1.元字符:
33 # 字符组 [] 在一个字符位置能够出现哪些内容
34 # [1bc] 第一个位置出现 1\b\c 都是可以的
35 # [0-9][A-Z][a-z] 匹配三个字符
36 # [0-9abc] :表示匹配一个字符 0到9和a\b\c都可以
37 # ASCII 数字<大写字母<小写字母
38 # 18位身份证号 [1-9][0-9][0-9]
39 # \d == [0-9] 也表示匹配一个字符,匹配的是一个数字 digit
40 # \w == [0-9a-zA-Z_] 也表示匹配一个数字字母下划线 word
41 # \s ==[\n \t]回车 空格 制表符tab 匹配所有的空白符 space
42 # \n 只匹配回车
43 # \t 只匹配制表符
44 # \D 匹配非数字
45 # \W 匹配非数字字母下划线
46 # \S 匹配非空白
47 # [\d\D] [\w\W] [\s\S]匹配所有
48 # \b 单词的边界 h\b 表示 h结尾的地方 \bh表示 h来头的地方
49 # ^ 表示匹配开头 $ 匹配结尾 ^ $ (限定死) 匹配一个字符串的开始和结尾
50 # a|b 匹配a也行匹配b也行 把长的放前面
51 # [^abc] 非字符组
52 # . 匹配除了换行符的任意字符
53 # 2.量词
54 # \d{3} 数字匹配三次
55 # \d\d{3} 数字 数字匹配三次
56 # \d{3,} 至少匹配3次 贪婪匹配
57 # \d{3,5} 至少3次 最多5次
58 # \d? 匹配0次 或1次
59 # # ? + * ? 0次或1次 + 一次或多次 * 0次或多次
60 # # {n}
61 # 3.特殊的用法和想象
62 # 问号的使用:
63 """
64 在量词的后面跟了一个问? ?? *? +? 表示取消贪婪匹配 惰性匹配
65 .*?x 匹配任意字符直到直到x .*x 找到最长的x
66 """
67 # 匹配15位或18位身份证号
68 # [1-9]\d{16}[0-9X]|[1-9]\d{14} 身份证号 或的用法
69 # [1-9]\d{14}(\d{2}[0-9X])? 身份证号 分组的用法
70 # \d+(\.\d*)? 121.0 5.2 0.65 56.33 小数 或者整数
71 """
72 # 元字符
73 # 元字符+量词 默认贪婪匹配
74 # 元字符+量词? 惰性匹配
75 """
76 # 练习1 连续3个数字
77 # \d{3}
78 # 练习2 1 连续2个相同的 数字
79 # (\d)\1
80 # 练习3 连续3个相同的 数字
81 # (\d)\1{2}
82 # \1 表示匹配第一个括号里面的内容
83 # 练习4 匹配连续3个或3个以上的连续的数字
84 # (\d)\1{2,}
85 # 练习 5 电话号码
86 # [1][1-9]\d{9}
87 # 练习 6 正整数
88 # [1-9]\d*
89 # 负整数
90 # -[1-9]\d*