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

\d 匹配所有的数字
\D 匹配所有,但是数字除外
\s 空格
\S 匹配所有但是空格除外
\w 匹配所有的字母
\W 匹配所有但是字母除外
. 任意除换行符 \n
\. 表示点符号,斜杠本身是转义字符
关于正则知识应用,推荐一篇文章:http://www.toutiao.com/i6411296780985565698/

常见的表达式举例:
{1,3} 表示数字1到3范围
+ 匹配1个或者更多
? 匹配0个或者1个结果
* 匹配0个或者更多结果
$ 匹配字符串的结尾部分
^ 匹配字符串的开始部分
| 匹配左右表达式任意一个
[] 字符集任意范围,例如[A-Z]表示大写A到Z
{x} 计算一共找到x的数量

一些空格符:
\n 换行
\s 空格
\t 一个tab,制表符
\e 转换字符串,转义
\f form feed
\r 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)

python3.5.3rc1学习九:正则表达式的更多相关文章

  1. python3.5.3rc1学习十一:字典与模块

    #os模块import oscurDir = os.getcwd()print(curDir) os.mkdir("新建") import timetime.sleep(2)os. ...

  2. python3.5.3rc1学习十:网络请求

    #sys模块import sys sys.stderr.write('This is stderr text\n')# 因为从定向有缓冲区,所以需要以下这行代码sys.stderr.flush()sy ...

  3. python3.5.3rc1学习八:文件打包

    from cx_Freeze import setup, Executable setup(name='test to exe', version = '0.1', description='test ...

  4. python3.5.3rc1学习七:多线程

    import threading def exampleFun(): #打印当前激活的线程数量 print(threading.active_count) #查看上面激活的线程是哪几个 print(t ...

  5. python3.5.3rc1学习六:画图

    # 可以设置颜色,g代表green, r代表red,y代表yellow,b代表blue# linewidth = 5,设置线条粗细 # label 设置线条名称 ##plt.plot(x,y,'b', ...

  6. python3.5.3rc1学习五:模块

    #比较大小#name:maxNumber.py#比较两个数大小#C:\Users\Anthony\AppData\Local\Programs\Python\Python36-32\Lib\site- ...

  7. python3.5.3rc1学习五:列表与元组

    #元组和列表 #元组定义x = 5,6,2,6 #or x = (5,6,2,6) #列表定义 y = [5,6,2,6] # 元组的使用,我们用return语句来演示 def exampleFunc ...

  8. python3.5.3rc1学习四:类

    class calculator: def add(x,y): return x + y print(added) def sub(x,y): return x - y print(sub) def ...

  9. python3.5.3rc1学习三:文件操作

    ##全局变量与局部变量x = 6 def printFuc(): y = 8 z =9 print(y + z) print(x) printFuc()#print(y)#常见错误##name = & ...

随机推荐

  1. 简单理解Busybox下halt/poweroff/reboot实现及区别

    关键词:halt/poweroff/reboot.reboot().SIGUSR1/SIGTERM/SIGUSR2等. 1. busybox下的halt/poweroff/reboot实现 通过app ...

  2. 使用docker运行springboot项目

    本文主要讲的是使用docker运行springboot项目 获取一个springboot项目 这里我没有重新构建,用的之前写的一个项目,直接从github上下载下来,地址:https://github ...

  3. win7+vim搭建+verilog HDL IDE

    参考地址:http://www.huangdc.com/421 参考文章为2016年,部分更新贴于文章内了 安装下载vim vim在win下叫gvim,下载地址:https://www.vim.org ...

  4. OC:浅析Runtime中消息转发机制

    一.介绍 OC是一门动态性语言,其实现的本质是利用runtime机制.在runtime中,对象调用方法,其实就是给对象发送一个消息,也即objc_msgSend().在这个消息发送的过程中,系统会进行 ...

  5. 一起学react (1) 10分钟 让你dva从入门到精通

    前言 如果文章中有错误的地方的话 可以直接加我QQ:469373256 自己针对一些问题做的优化版本 目前刚启动 还不是很成熟 https://github.com/fangkyi03/fastkit ...

  6. 11-Django站点管理

    站点管理 内容发布的部分由网站的管理员负责,包括查看.添加.修改.删除数据 开发这些重复的功能是一件单调乏味.缺乏创造力的工作,为此,Django能够根据定义的模型类自动地生成管理模块 在Django ...

  7. 打开Github网站反应慢的问题

    解决办法: 为了提高速度,可以使用HOSTS加速对Github网站加载的资源网站域名解析. 具体做法: 修改  C:\Windows\System32\drivers\etc  中的hosts文件(P ...

  8. Chapter 2 :重构的原则

    1,什么是重构? 在不改变软件可观察行为的前提下,使用一些重构的手法,提高代码可读性. 换句话说,在保持软件可用的前提下,修改代码使得更加容易被理解. 2,为什么重构? 为了后续的代码维护和修改,易读 ...

  9. httpclient超时时间设置及代理设置

    超时时间 设置HttpClient的超时时间,非常有必要性,因为httpclient 默认超时时间很长,自己可以测试一下是多久,设置超时时间否则会影响自己系统的业务逻辑,例如阻塞系统,影响系统的吞吐量 ...

  10. U8 BOM数据结构

    U8 BOM涉及的数据表有四张 bom_bom     BOM资料  该表主要记录BOM表的一些基本信息,版本.创建.审核等信息,不包括任何子件.母件信息:bomid是BOM主键 bom_parent ...