Python for Informatics 第11章 正则表达式五(译)
注:文章原文为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章 正则表达式五(译)相关推荐
- python for informatics_Python for Informatics 第11章 正则表达式一(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 目前为止,我们一直在通读文件,查 ...
- 利用python进行数据分析——第11章时间序列
文章目录 时间序列 一.日期和时间数据类型及工具 1.1字符串与datetime互相转换 二.时间序列基础 2.1索引.选取.子集构造 2.2 含有重复索引的时间序列 三.日期的范围.频率以及移动 3 ...
- Python金融数据挖掘 第11章 复习思考题1 (聚类)给出一个数据集data_multivar.txt,里面有200个点坐标,在平面坐标系下可以画出它的散点图,用K均值聚类算法来训练模型,分4类。
1.题目 给出一个数据集data_multivar.txt,里面有200个点坐标,在平面坐标系下可以画出它的散点图,如图11-12所示. data_multivar.txt 图11-12 数据集 da ...
- 利用python进行数据分析——第13章 python建模库介绍
文章目录 一.pandas与建模代码的结合 二.使用patsy创建模型描述 2.1Patsy公式中的数据转换 2.2分类数据与Patsy 三.statsmodels介绍 3.1评估线性模型 3.2评估 ...
- 正则表达式习题解答-Python核心编程3 第一章
第一章正则表达式 一.正则表达式 按照练习 1-1-1-12 的要求创建正则表达式. 1-1 识别后续的字符串:"bat"."bit"."but&qu ...
- 《Python数据分析与挖掘实战》第11章——应用系统负载分析与磁盘容量预测(时间序列)
文章目录 1.背景与目标分析 2.2 数据探索 2.1 查看数据信息 2.2 数据平稳性分析 3 数据预处理 3.1 数据清洗 3.2 数据变换--属性构造 4 模型构建 4.1 确定模型-- ARM ...
- python核心编程第3版第1章 正则表达式【读书笔记】
什么是正则表达式 正则表达式为高级的本文模式匹配.抽取.与/或文本形式的搜索和替换功能提供了基础.简单地说,正则表达式(简称为regex)是一些由字符和特殊符号组成的字符串. re模块 python通 ...
- 跟李宁老师学Python视频课程(11):正则表达式-李宁-专题视频课程
跟李宁老师学Python视频课程(11):正则表达式-121人已学习 课程介绍 本系列课程一共20套,每一套视频课程会深入讲解Python的一类知识点.Python是当今炙手可热的编程 ...
- python封装类在当前文件中使用_name_下调用不了_学python中对于类怎么也不明白,对了是看到简明教程11章,类与变量的对象....想要通俗易懂的答案....
代码(简明python教程第11章,感觉看懂了大半但是其中我没调用的为什么也有...谢谢!!!):#coding:utf-8#数据结构好抽象啊..#python的空格制表位,是灾难的开始啊#init制 ...
最新文章
- mysql操作数字名称的schema时字符的逃逸问题
- 我删了这些训练数据…模型反而表现更好了!?
- android 中文 API (41) —— RatingBar.OnRatingBarChangeListener
- C#者重建C++之路 - 运行机制的差异
- 循环队列(循环数组)中元素个数的计算
- Python数据类型解析(基础篇)
- leetcode140. Word Break II
- MyBatis整合Spring的实现(11)
- Android8.0使用ninja模块编译Settings
- 16.1 Class类与Java反射
- Linux chmod权限详解
- 阿里云一级域名跳转https的二级域名配置说明(主域名跳转子域名, 不带www跳带www)
- MMR 排序多样化重排序算法
- 值得收藏,这6种制作竞赛动图的方法妙不可言
- PDF在线免费转换成PPT怎么操作?
- 树莓派 天猫精灵智能灯泡_智能灯泡即使在关闭时也会用完电吗?
- 【Python爬虫】第一课 Python爬虫环境与爬虫简介
- TP4333TPOWER应急灯同步充放移动电源IC解决方案
- Excel 如何间隔N行取数
- Android Menu 之 optionsMenu 详解
热门文章
- python方法_详细解读Python中的__init__()方法
- linux系统如何切换语言环境变量,Linux系统中如何修改某用户语言环境变量
- 用python搭建环境_搭建一个即开即用的Python环境
- 对计算机硬件的工作原理的认识,计算机硬件的认识与安装.doc
- php 数组改成索引数组_PHP:用现有的唯一值替换数组索引键
- java stax_XMLStreamWriter Java StAX
- c# 中代替指针的功能_C中的功能指针
- 简要说明下maven的作用_Maven资料库–简要指南
- java中hashmap_Java HashMap – Java中的HashMap
- iOS UITextView和UITextViewDelegate