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编写 通用 ...
随机推荐
- 《学习OpenCV3》第6章课后习题
//Exercises at end of Chapter 5,<learning OpenCV3> #include "stdafx.h" #include < ...
- luogu 3790 文艺数学题 - 矩阵树定理 - 容斥原理
题目传送门 戳我来传送 题目大意 给定一个图,问它的所有生成树的边权的最大公约数之和. 可以考虑计算边权的最大公约数为$i$的生成树的个数$f(i)$,最后累加答案. 然后考虑这样的生成树的个数怎么求 ...
- poj 1275 Cashier Employment - 差分约束 - 二分答案
A supermarket in Tehran is open 24 hours a day every day and needs a number of cashiers to fit its n ...
- Python中的对象行为与特殊方法(一)对象的创建与销毁
Python中类调用__new__()类方法来创建实例,调用__init__()方法来初始化对象,对象的销毁则调用__del__()方法. __new__()方法第一个参数为类cls,通常返回cls的 ...
- Ant build.xml详解
Ant的概念 可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令.当编译Linux内核及一些软件的源程序时,经常要用这个命令.Make命令其实 ...
- nginx: [emerg] BIO_new_file("/etc/nginx/ssl_key/server.crt") failed (SSL: error:02001002:syste
Centos 7.5 nginx+web集群配置https报错 报错信息: [root@lb01 conf.d]# nginx -tnginx: [emerg] BIO_new_file(" ...
- java定时任务调度工具
一.什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的时间执行次数自动执行的任务. 二.java中常用的定时任务调度工具: Timer Quartz 2.1两者区别: Timer源自jdk ...
- 160CrackMe练手 002
首先查壳无壳,输入伪码报错,根据报错od查找字符串,定位到错误代码附近,可以看到有个条件跳转,改掉就可以爆破,接下来分析下注册算法,我们周围看看,从最近几个call看,并没有我们输入的用户名在堆栈中出 ...
- PKM(个人知识管理)类软件收集(偶尔更新列表)
evernote(印象笔记) Wiz 有道云 麦库 leanote GoogleKeep OneNote SimpleNote(wp家的,免费) pocket(稍后读的软件,同类的还有Instapap ...
- ffmpeg 下载安装和简单应用
一.ffmpeg下载 先到http://ffmpeg.org/下载ffmpeg安装文件 二.ffmpeg安装 1.解压下载完的ffmpeg-20190319-f8075b2-win64-shared. ...