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编写 通用 ...
随机推荐
- python,pycharm安装
下载python地址:https://www.python.org/downloads/release/python-371/ 安装python ***python安装目录下的scripts加入环境变 ...
- bzoj 4289 Tax - 最短路
题目传送门 这是一条通往vjudge的神秘通道 这是一条通往bzoj的神秘通道 题目大意 如果一条路径走过的边依次为$e_{1}, e_{2}, \cdots , e_{k}$,那么它的长度为$e_{ ...
- xlrd与xlwt的下载
读excel表格: xlrd 地址:https://pypi.org/project/xlrd/ 下载语句:pip install xlrd 写excel表格: xlwt https://pypi.o ...
- UFS和EMMC的区别--原理学习【转】
本文转载自:https://blog.csdn.net/shenjin_s/article/details/79761425 UFS PK EMMC UFS作为目前安卓智能手机最先进的非易失存储器(N ...
- 马虎的算式|2013年蓝桥杯B组题解析第二题-fishers
小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了. 有一次,老师出的题目是:36 x 495 = ? 他却给抄成了:396 x 45 = ? 但结果却很戏剧性,他的答案竟然是对的!! 假设 ...
- Java 多线程案例
同步代码块 SynchronizedTest类,用来表示取票功能 package concurency.chapter6; public class SynchronizedTest implemen ...
- IDEA入门及maven配置
idea基本使用 下载安装 idea下载地址 激活方法 上面的失效使用这个 配置SDKs和编译版本 选择jdk 我是主要用于Java开发,因此配置JDK8 配置编码 其他配置 个人配置主题等 注意 与 ...
- Hbase与Oracle比较(列式数据库与行式数据库)
Hbase与Oracle比较(列式数据库与行式数据库) 1 主要区别 Hbase适合大量插入同时又有读的情况 Hbase的瓶颈是硬盘传输速度,Oracle的瓶颈是硬盘寻道时间. Hbase本质上只 ...
- mysql中between...and..的使用,及时间范围的查询
博主原创,转载注明出处: 在mysql应用中,以范围进行查询的很多是以时间范围作为条件进行范围查询的,时间范围查询有 很多种写法,首先总结一下between....and...的使用方法: <s ...
- PTA 7-2 列车调度(25 分)
7-2 列车调度(25 分) 火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道 ...