# 正则表达式
'''''
正则表达式是有一些特殊字符组成,能够帮你找到一些符合一定规则的字符串
先来了解几个符号所代表的意思
d 匹配所有的数字
D 匹配所有,但是数字除外
s 空格
S 匹配所有但是空格除外
w 匹配所有的字母
W 匹配所有但是字母除外
. 任意除换行符
. 表示点符号,斜杠本身是转义字符
关于正则知识应用,推荐一篇文章:http://www.toutiao.com/i6411296780985565698/
常见的表达式举例:
{1,3} 表示数字1到3范围
+ 匹配1个或者更多
? 匹配0个或者1个结果
* 匹配0个或者更多结果
$ 匹配字符串的结尾部分
^ 匹配字符串的开始部分
| 匹配左右表达式任意一个
[] 字符集任意范围,例如[A-Z]表示大写A到Z
{x} 计算一共找到x的数量
一些空格符:
换行
s 空格
一个tab,制表符
e 转换字符串,转义
f form feed
return
记住这些:
. + * ? [ ] $ ^ ( ) { } |
'''
# 举例一个应用
import re
exampleString = ''''
Anthony is 18 years old, and Daniel is 27 years old.
Tom is 78 and his grandfather,Bob is 102.
'''
#d表示所有数字,{1,3}表示1到3范围的数字
ages = re.findall(r'd{1,3}',exampleString)
# 下面的*表示匹配多个大写A-Z或者小写a-z
names = re.findall(r'[A-Z][a-z]*',exampleString)
print(ages)
print(names)
# 我们把姓名和年龄信息保存到一个字典,然后输出
# 先定义一个空字典
ageDict = {}
x = 0
for eachName in names:
# 把名称作为键,年龄作为值,根据名称去设置年龄值,这样就匹配上
ageDict[eachName] = ages[x]
x+=1
print(ageDict)