python3.5.3rc1学习九:正则表达式

# 正则表达式
'''''
正则表达式是有一些特殊字符组成,能够帮你找到一些符合一定规则的字符串
先来了解几个符号所代表的意思

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)

原文地址:https://www.cnblogs.com/51testing/p/7928543.html