Python 编程快速上手 第七章总结
前言
在 Word 软件中,我们总是习惯使用 CMD+F 用来查找和替换文本,但是,正如作者所说:
虽然计算机可以很快地查找文本,但你必须精确地告诉它要找什么。
我们往往想要查找一类文本,比如一段文本中网页的网址,电话号码,E-mail 地址等等。这时候,我们查找的是一种“文本模式”,而正则表达式就是文本模式的描述方法。
定义
正则表达式:英文为 regular expression, 简称 regex,是文本模式的描述方法。
基本步骤
- 导入模块:import re
- 创建一个 Regex 模式对象:即向 re.compile() 传入一个字符串值:phoneNumRegex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
- 匹配字符串:使用 Regex( 模式)对象的 search() 方法(或者findall()方法)进行匹配对应的字符串,将返回一个 Match 对象(或者一个
- 列表)。
1. 查看结果。使用 Match() 对象的 group() 方法查看结果。
匹配模式的符号
字符分类
缩写字符:
- \d :0~9 \D: except for 0~9
- \w: word \W:except for alphas, numbers, underscores
- \s: space \S:except for space
自定义字符
- [aeiouAEIOU]:用户自定义的字符分类; [aeiouAEIOU] except for these chracters
注意:可以使用[0-9],[a-zA-Z]来实现所有在其范围内的匹配。
任意字符
- 通配符:. 除了换行之外的任何字符
次数匹配:
- {m,n}:匹配至少 m 次,至多 n 次的前面的分组
- ?:匹配 0 次或 1 次的前面的分组,它放在其他匹配符后面有改成不贪心匹配的功能
- *:匹配 0 次或 多次的前面的分组
- +:匹配 1 次或 多次前面的分组
其他匹配
开头和结尾
spam:必须以 spam 开头
spam $: 必须以 spam 结尾
管道匹配
| 这个符号被叫做管道,表示可以匹配模式两边中的一种。
更加高级的匹配
为了使用更加高级的匹配,比如不区分大小写,忽略注释,匹配换行的功能,需要设置创建 Regex 模式对象的第二个参数
re.IGNORECASE用于不区分大小写的匹配:
格式:robocop = re.compile(r'robocop',re.I)
re. DOTALL 用于识别换行符的匹配
格式:robocop = re.compile(r'robocop',re.DOTALL)
re. VERBOSE 用于忽略注释的匹配
格式:robocop = re.compile(r'robocop',re.VERBOSE)
替换字符串:sub() 方法
格式:对一个 Regex 对象使用:
nameRegex = re.complie(r'Agent')
nameRegex.sub('CENSORED','Agent Alice gave the secret documents to Agent Bob')
作用:sub() 方法针对对一个 Regex 对象使用;
它含有两个参数,第一个是用于取代匹配的字符串的字符串,第二个是匹配的内容;
结果返回一个字符串。
Python 编程快速上手 第七章总结的更多相关文章
- Python 编程快速上手 第六章总结
第六章 字符串操作 前言 这一章节讲了关于 Python 中字符串类型的知识.与字符串有关的操作符,方法等等. 处理字符串:字符串的写入.打印.访问的知识 原始字符串 格式:r'string'作用:在 ...
- Python 编程快速上手 第十一章 Web scrapping
前言 这一章讲了如何在 Web 上抓取相关的信息,工具是三个模块: webbrowser 模块:用于打开浏览器指定页面 requests 模块:用于下载文件 Beautiful Soup 模块:用于解 ...
- Python 编程快速上手 第五章总结
第五章 字典和结构化数据 创建数组 格式:myCat = {'size':'fat','color':'gray',disposition':'loud'} 对字典的操作 通过[ ] 访问字典的值 [ ...
- python编程快速上手第7章习题20
20.如何写一个正则表达式,匹配每 3 位就有一个逗号的数字?它必须匹配以下数字:'42''1,234''6,368,745'但不会匹配: '12,34,567' (逗号之间只有两位数字) '1234 ...
- Python 编程快速上手 第十七章 操作图像
前言 在这一章节,讲了关于图像的三个方面的内容: 获得图像的相关信息:例如 RGBA 值,尺寸... 对图像进行编辑操作:例如 旋转,缩放... 在图像上绘制形状:例如 矩形,圆形... [Image ...
- Python编程快速上手(七)Unsplash批量下载器
首发于个人博客:http://rhinoc.top/post/python_7.html 程序描述 V1.0输入关键字搜索图片,模拟页面下拉获取更多图片,页面加载完成后获取图片链接并下载至指定文件夹. ...
- Python编程快速上手-让繁琐工作自动化-第二章习题及其答案
Python编程快速上手-让繁琐工作自动化-第二章习题及其答案 1.布尔数据类型的两个值是什么?如何拼写? 答:True和False,使用大写的T和大写的F,其他字母是小写. 2.3个布尔操作符是什么 ...
- 入门python:《Python编程快速上手让繁琐工作自动化》中英文PDF+代码
入门推荐学习<python编程快速上手>前6章是python的基础知识,通俗易懂地讲解基础,初学者容易犯错的地方,都会指出来.从第三章开始,每章都有一个实践项目,用来巩固前面所学的知识. ...
- Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘
Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:7qm4 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 通用 ...
随机推荐
- HAProxy实现slave负载均衡[高可用]
下面要执行的是HAProxy部分 这是一个集群,其他的部分在: mysql-cluster 7.3.5安装部署 mysql主备部署[高可用] mysql主备切换[高可用] mysql读写分离[高可用] ...
- RMAN入门——简介
RMAN(Recovery Manager) 1.简介 RMAN(Recovery Manager)是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件.归档日志和控制文件 ...
- tp5 本地安装和调试的问题
安装的时候用官方下载的包或者用composer指定版本号,不要用git,会安装最新的包. 本地配置域名的时候出错,要不就是500要不就是找不到文件,原因是目录路径里的反斜杆加字母t被转义了,改成正斜杠 ...
- Static变量与代码块
* static:是一个关键字,用于修饰成员变量和成员方法 * static的特点: * 被所有的对象所共享 * 可以使用类名调用 * 静态的加载优先于对象 * 随着类的加载而加载 * static的 ...
- loj#2510. 「AHOI / HNOI2018」道路 记忆化,dp
题目链接 https://loj.ac/problem/2510 思路 f[i][a][b]表示到i时,公路个数a,铁路个数b 记忆化 复杂度=状态数=\(nlog^2n\) 代码 #include ...
- 程序重启RocketMQ消息重复消费
最近在调试RocketMQ消息发送与消费的Demo时,发现一个问题:只要重启程序,RocketMQ消息就会重复消费. 那么这是什么原因导致的,又该如何解决呢? 经过一番排查,发现程序使用的Rocket ...
- 学习使用JUnit4进行单元测试
借用http://blog.csdn.net/andycpp/article/details/1327147等文章上面的例子和教程进行学习总结,自己敲了一遍代码,发现里面有些东西,可能版本原因,已经稍 ...
- 题解——HDU 2089 不要62(数位DP)
最近在学数位DP 应该是入门题吧 设\( dp[i][0/1] \)表示到第\( i \)位时,前一位是否是6的满足条件的数的个数 然后就是套路 注意\( limit \)的限制条件以及转移时候信息的 ...
- 洛谷P1244 青蛙过河 DP/思路
又是一道奇奇怪怪的DP(其实是思路题). 原文戳>>https://www.luogu.org/problem/show?pid=1244<< 这题的意思给的挺模糊,需要一定的 ...
- Java基础 --Unix与Mac系统 文件路径分隔符(一)
斜杠‘/’与反斜杠‘\’在不同系统的使用 1)Window平台使用反斜杠'\'作为文件层级分隔符:Windows使用反斜杠作为DOS命令提示符的参数标志,随着发展DOS命令符逐渐被淘汰,大部分情况下斜 ...