注:文章原文为Dr. Charles Severance 的 《Python for Informatics》。文中代码用3.4版改写,并在本机测试通过。

11.4 转义字符

  之前我们在正则表达式中使用特殊字符来匹配一行的开头和结尾,或者是指定通配符,当我们想匹配象"$"或"^"的实际字符时,我们需要一个方法来表示这些“正常”的字符。

  我们可以简单的在字符前添加反斜线"\"即可实现匹配。例如,我们可以使用下面的正则表达式找到金钱数额:

import re
x = 'We just received $10.00 for cookies.'
y = re.findall('\$[0-9.]+', x)

  因为我们在“$"符前添加了反斜线前缀,"\$"这个表示式就表示匹配正常的"$"符,而不是表示匹配行的尾部了。这个表达式的后半部分"[0-9.]+"表示匹配一个或者更多的数字或点。要注意的是,在方括号中,字符不是”特殊的“。所以它们是实际上的数字或点。在方括号外的".",则是一个通配符了,可以匹配任何字符。

11.5 小结

  以上是关于正则表达式的浅显介绍,要想更好的应用正则表达式,我们还需更多地学习它的语言。这些包含特殊字符的查询字符串,是沟通你匹配和抽取字符的愿望和正则表达式系统之间的桥梁。下面是一些特殊字符和字符序列:

  ^  匹配行的开头

  $  匹配行的末尾

  .   匹配任意字符(通配符)

  \s   匹配一个空白字符

  \S  匹配一个非空白字符(和\s相反)

  *  应用到它左侧紧挨的字符,表示匹配零个及以上的左侧字符

  *?   应用到它左侧紧挨的字符,表示以非贪婪模式匹配零个及以上的左侧字符

  +  应用到它左侧紧挨的字符,表示匹配一个及以上的左侧字符

  +?  应用到它左侧紧挨的字符,表示以非贪婪模式匹配一个及以上的左侧字符

  [aeiou]  匹配一个只要是在指定字符集内的元音字符。在这个例子中,它将匹配"a","e","i","o","u",而不是其它字符。

  [a-z0-9]  你可以用减号指定字符的范围,本例匹配一个必须是小写字母或数字的任意字符。

  [^A-Za-z]  当方括号内的第一个字符是插入符,它将反转逻辑。本例匹配一个除大小写字母外的其它字符。

  ()  在使用findall()过程中,在正则表达式中添加的括号,在查询匹配过程中将被忽略,但是允许你抽取括号内的匹配字符。

  \b  匹配空的字符串,但只在一个词的开头和结尾。

  \B  匹配空的字符串,但不是在一个词的开头和结尾。

  \d  匹配任意十进制数字,等同与[0-9]。

  \D  匹配任意非数字字符,等同与[^0-9]。

11.6 Unix用户的红利

  自19世纪六十年代,Unix系统就集成了正则表达式用于支持查询文件,并且几乎所有的编程语言都支持正则表达式。

  事实上Unix内置了一个叫做grep(Generalized Regular Expression Parser)的命令行程序。它可以做到本章中search()函数几乎一样的功能。所以如果你使用的是Macintosh或Linux系统,你可以在你的命令行窗口尝试以下命令:

$ grep '^From:' mbox-short.txt

From: stephen.marquard@uct.ac.za
From: louis@media.berkeley.edu
From: zqian@umich.edu
From: rjlowe@iupui.edu

  这个命令让grep显示mbox-short.txt文件中以"From:"开始的行。如果你对grep命令有一定的经验并且读过它的帮助文档,你会发现Python中的正则表达式和grep中的正则表达式有细微的差别。例如,grep不支持非空格字符"\S",所以你需要使用稍微复杂的组合"[^ ]"来匹配一个非空格的任意字符。

转载于:https://www.cnblogs.com/zhengsh/p/5416509.html

Python for Informatics 第11章 正则表达式五(译)相关推荐

  1. python for informatics_Python for Informatics 第11章 正则表达式一(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 目前为止,我们一直在通读文件,查 ...

  2. 利用python进行数据分析——第11章时间序列

    文章目录 时间序列 一.日期和时间数据类型及工具 1.1字符串与datetime互相转换 二.时间序列基础 2.1索引.选取.子集构造 2.2 含有重复索引的时间序列 三.日期的范围.频率以及移动 3 ...

  3. Python金融数据挖掘 第11章 复习思考题1 (聚类)给出一个数据集data_multivar.txt,里面有200个点坐标,在平面坐标系下可以画出它的散点图,用K均值聚类算法来训练模型,分4类。

    1.题目 给出一个数据集data_multivar.txt,里面有200个点坐标,在平面坐标系下可以画出它的散点图,如图11-12所示. data_multivar.txt 图11-12 数据集 da ...

  4. 利用python进行数据分析——第13章 python建模库介绍

    文章目录 一.pandas与建模代码的结合 二.使用patsy创建模型描述 2.1Patsy公式中的数据转换 2.2分类数据与Patsy 三.statsmodels介绍 3.1评估线性模型 3.2评估 ...

  5. 正则表达式习题解答-Python核心编程3 第一章

    第一章正则表达式 一.正则表达式 按照练习 1-1-1-12 的要求创建正则表达式. 1-1 识别后续的字符串:"bat"."bit"."but&qu ...

  6. 《Python数据分析与挖掘实战》第11章——应用系统负载分析与磁盘容量预测(时间序列)

    文章目录 1.背景与目标分析 2.2 数据探索 2.1 查看数据信息 2.2 数据平稳性分析 3 数据预处理 3.1 数据清洗 3.2 数据变换--属性构造 4 模型构建 4.1 确定模型-- ARM ...

  7. python核心编程第3版第1章 正则表达式【读书笔记】

    什么是正则表达式 正则表达式为高级的本文模式匹配.抽取.与/或文本形式的搜索和替换功能提供了基础.简单地说,正则表达式(简称为regex)是一些由字符和特殊符号组成的字符串. re模块 python通 ...

  8. 跟李宁老师学Python视频课程(11):正则表达式-李宁-专题视频课程

    跟李宁老师学Python视频课程(11):正则表达式-121人已学习 课程介绍         本系列课程一共20套,每一套视频课程会深入讲解Python的一类知识点.Python是当今炙手可热的编程 ...

  9. python封装类在当前文件中使用_name_下调用不了_学python中对于类怎么也不明白,对了是看到简明教程11章,类与变量的对象....想要通俗易懂的答案....

    代码(简明python教程第11章,感觉看懂了大半但是其中我没调用的为什么也有...谢谢!!!):#coding:utf-8#数据结构好抽象啊..#python的空格制表位,是灾难的开始啊#init制 ...

最新文章

  1. mysql操作数字名称的schema时字符的逃逸问题
  2. 我删了这些训练数据…模型反而表现更好了!?
  3. android 中文 API (41) —— RatingBar.OnRatingBarChangeListener
  4. C#者重建C++之路 - 运行机制的差异
  5. 循环队列(循环数组)中元素个数的计算
  6. Python数据类型解析(基础篇)
  7. leetcode140. Word Break II
  8. MyBatis整合Spring的实现(11)
  9. Android8.0使用ninja模块编译Settings
  10. 16.1 Class类与Java反射
  11. Linux chmod权限详解
  12. 阿里云一级域名跳转https的二级域名配置说明(主域名跳转子域名, 不带www跳带www)
  13. MMR 排序多样化重排序算法
  14. 值得收藏,这6种制作竞赛动图的方法妙不可言
  15. PDF在线免费转换成PPT怎么操作?
  16. 树莓派 天猫精灵智能灯泡_智能灯泡即使在关闭时也会用完电吗?
  17. 【Python爬虫】第一课 Python爬虫环境与爬虫简介
  18. TP4333TPOWER应急灯同步充放移动电源IC解决方案
  19. Excel 如何间隔N行取数
  20. Android Menu 之 optionsMenu 详解

热门文章

  1. python方法_详细解读Python中的__init__()方法
  2. linux系统如何切换语言环境变量,Linux系统中如何修改某用户语言环境变量
  3. 用python搭建环境_搭建一个即开即用的Python环境
  4. 对计算机硬件的工作原理的认识,计算机硬件的认识与安装.doc
  5. php 数组改成索引数组_PHP:用现有的唯一值替换数组索引键
  6. java stax_XMLStreamWriter Java StAX
  7. c# 中代替指针的功能_C中的功能指针
  8. 简要说明下maven的作用_Maven资料库–简要指南
  9. java中hashmap_Java HashMap – Java中的HashMap
  10. iOS UITextView和UITextViewDelegate