前言

在 Word 软件中,我们总是习惯使用 CMD+F 用来查找和替换文本,但是,正如作者所说:

虽然计算机可以很快地查找文本,但你必须精确地告诉它要找什么。

我们往往想要查找一类文本,比如一段文本中网页的网址,电话号码,E-mail 地址等等。这时候,我们查找的是一种“文本模式”,而正则表达式就是文本模式的描述方法。

定义

正则表达式:英文为 regular expression, 简称 regex,是文本模式的描述方法。

基本步骤

  1. 导入模块:import re
  2. 创建一个 Regex 模式对象:即向 re.compile() 传入一个字符串值:phoneNumRegex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
  3. 匹配字符串:使用 Regex( 模式)对象的 search() 方法(或者findall()方法)进行匹配对应的字符串,将返回一个 Match 对象(或者一个
  4. 列表)。
    1. 查看结果。使用 Match() 对象的 group() 方法查看结果。

匹配模式的符号

字符分类

缩写字符:
  1. \d :0~9 \D: except for 0~9
  2. \w: word \W:except for alphas, numbers, underscores
  3. \s: space \S:except for space
自定义字符
  1. [aeiouAEIOU]:用户自定义的字符分类; [aeiouAEIOU] except for these chracters

注意:可以使用[0-9],[a-zA-Z]来实现所有在其范围内的匹配。

任意字符
  1. 通配符:. 除了换行之外的任何字符

次数匹配:

  1. {m,n}:匹配至少 m 次,至多 n 次的前面的分组
  2. ?:匹配 0 次或 1 次的前面的分组,它放在其他匹配符后面有改成不贪心匹配的功能
  3. *:匹配 0 次或 多次的前面的分组
  4. +:匹配 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 编程快速上手 第七章总结的更多相关文章

  1. Python 编程快速上手 第六章总结

    第六章 字符串操作 前言 这一章节讲了关于 Python 中字符串类型的知识.与字符串有关的操作符,方法等等. 处理字符串:字符串的写入.打印.访问的知识 原始字符串 格式:r'string'作用:在 ...

  2. Python 编程快速上手 第十一章 Web scrapping

    前言 这一章讲了如何在 Web 上抓取相关的信息,工具是三个模块: webbrowser 模块:用于打开浏览器指定页面 requests 模块:用于下载文件 Beautiful Soup 模块:用于解 ...

  3. Python 编程快速上手 第五章总结

    第五章 字典和结构化数据 创建数组 格式:myCat = {'size':'fat','color':'gray',disposition':'loud'} 对字典的操作 通过[ ] 访问字典的值 [ ...

  4. python编程快速上手第7章习题20

    20.如何写一个正则表达式,匹配每 3 位就有一个逗号的数字?它必须匹配以下数字:'42''1,234''6,368,745'但不会匹配: '12,34,567' (逗号之间只有两位数字) '1234 ...

  5. Python 编程快速上手 第十七章 操作图像

    前言 在这一章节,讲了关于图像的三个方面的内容: 获得图像的相关信息:例如 RGBA 值,尺寸... 对图像进行编辑操作:例如 旋转,缩放... 在图像上绘制形状:例如 矩形,圆形... [Image ...

  6. Python编程快速上手(七)Unsplash批量下载器

    首发于个人博客:http://rhinoc.top/post/python_7.html 程序描述 V1.0输入关键字搜索图片,模拟页面下拉获取更多图片,页面加载完成后获取图片链接并下载至指定文件夹. ...

  7. Python编程快速上手-让繁琐工作自动化-第二章习题及其答案

    Python编程快速上手-让繁琐工作自动化-第二章习题及其答案 1.布尔数据类型的两个值是什么?如何拼写? 答:True和False,使用大写的T和大写的F,其他字母是小写. 2.3个布尔操作符是什么 ...

  8. 入门python:《Python编程快速上手让繁琐工作自动化》中英文PDF+代码

    入门推荐学习<python编程快速上手>前6章是python的基础知识,通俗易懂地讲解基础,初学者容易犯错的地方,都会指出来.从第三章开始,每章都有一个实践项目,用来巩固前面所学的知识. ...

  9. Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘

    Python编程快速上手  让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:7qm4 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 通用 ...

随机推荐

  1. wireshark抓包的过滤规则

    使用wireshark抓包的过滤规则.1.过滤源ip.目的ip.在wireshark的过滤规则框Filter中输入过滤条件.如查找目的地址为192.168.101.8的包,ip.dst==192.16 ...

  2. 浅谈 DDoS 攻击与防御

    浅谈 DDoS 攻击与防御 原创: iMike 运维之美  什么是 DDoS DDoS 是英文 Distributed Denial of Service 的缩写,中文译作分布式拒绝服务.那什么又是拒 ...

  3. Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区别

    ava.io下面有两个抽象类:InputStream和ReaderInputStream是表示字节输入流的所有类的超类Reader是用于读取字符流的抽象类InputStream提供的是字节流的读取,而 ...

  4. ARM的栈指令(转)

    ARM的指令系统中关于栈指令的内容比较容易引起迷惑,这是因为准确描述一个栈的特点需要两个参数: 栈地址的增长方向:ARM将向高地址增长的栈称为递增栈(Descendent Stack),将向低地址增长 ...

  5. Ubuntu软件操作的相关命令

    Ubuntu软件操作的相关命令 sudo apt-get update ------------------------------- 更新源 sudo apt-get install package ...

  6. ng-model绑定的是ng-option中的什么?

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  7. java 之 音乐播放代码

    //需求:通过代码播放音乐 //1.读取文件 //2.将音乐文件放到播放代码中 //3.播放 public static void main(String[] args) throws Malform ...

  8. 论文笔记之 SST: Single-Stream Temporal Action Proposals

    SST: Single-Stream Temporal Action Proposals 2017-06-11 14:28:00 本文提出一种 时间维度上的 proposal 方法,进行行为的识别.本 ...

  9. Vue.extend提供自定义组件的构造器

    Vue.extend 返回的是一个“扩展实例构造器”,也就是预设了部分选项的Vue实例构造器.经常服务于Vue.component用来生成组件,可以简单理解为当在模板中遇到该组件名称作为标签的自定义元 ...

  10. SQL四大语句、四大完整性、五大约束

    四大语句: 1.数据定义语句: DDL:create.alter.drop.truncate(表结构) 2.数据操纵语句: DML:insert.delete.update.select 3.数据控制 ...