Python 入门教程
0.为什么选择 Python 入门?
1.安装
2.print
3.IDE
4.输入
5.变量
6.bool
7.if
8.while
9.random
10.变量2
11.逻辑判断
12.for循环
13.字符串
14.字符串格式化
15.循环的嵌套
16.字符串格式化2
17.类型转换
18.bool类型转换
19.函数
20.命令行常用命令
21.函数的参数
22.函数应用示例
23.if, elif, else
24.if的嵌套
25.初探list
26.操作list
27.list切片
28.字符串的分割
29.连接list
30.字符串的索引和切片
31.读文件
32.写文件
33.处理文件中的数据
34.break
35.continue
36.异常处理
37.字典
38.模块
39.用文件保存游戏(1)
40.用文件保存游戏(2)
41.用文件保存游戏(3)
42.函数的默认参数
43.查天气(1)
44.查天气(2)
45.查天气(3)
46.面向对象(1)
47.面向对象(2)
48.面向对象(3)
49.面向对象(4)
50.and-or技巧
51.元组
52.数学运算
53.真值表
54.正则表达式(1)
55.正则表达式(2)
56.正则表达式(3)
57.正则表达式(4)
58.正则表达式(5)
59.随机数
60.计时
61.调试程序
62.python 2 到 3 的新手坑
63.python shell
64.列表解析
65.函数的参数传递(1)
66.函数的参数传递(2)
67.函数的参数传递(3)
68.lambda 表达式
69.变量的作用域
70.map 函数
71.reduce 函数
72.多线程
【Python 第56课】正则表达式(3)
先来公布上一课习题的答案:
\bs\S*e\b
有的同学给出的答案是"\bs.*?e\b"。测试一下就会发现,有奇怪的'sea sue'和'sweet see'混进来了。既然是单词,我们就不要空格,所以需要用"\S"而不是"."
昨天有位同学在论坛上说,用正则表达式匹配出了文件中的手机号。这样现学现用很不错。匹配的规则是"1.*?\n",在这个文件的条件下,是可行的。但这规则不够严格,且依赖于手机号结尾有换行符。今天我来讲讲其他的方法。
匹配手机号,其实就是找出一串连续的数字。更进一步,是11位,以1开头的数字。
还记得正则第1讲里提到的[]符号吗?它表示其中任意一个字符。所以要匹配数字,我们可以用
[0123456789]
由于它们是连续的字符,有一种简化的写法:[0-9]。类似的还有[a-zA-Z]的用法。
还有另一种表示数字的方法:
\d
要表示任意长度的数字,就可以用
[0-9]*
或者
\d*
但要注意的是,*表示的任意长度包括0,也就是没有数字的空字符也会被匹配出来。一个与*类似的符号+,表示的则是1个或更长。
所以要匹配出所有的数字串,应当用
[0-9]+
或者
\d+
如果要限定长度,就用{}代替+,大括号里写上你想要的长度。比如11位的数字:
\d{11}
想要再把第一位限定为1,就在前面加上1,后面去掉一位:
1\d{10}
OK. 总结一下今天提到的符号:
[0-9]
\d
+
{}
现在你可以去一个混杂着各种数据的文件里,抓出里面的手机号,或是其他你感兴趣的数字了。
来源:Crossin的编程教室