注:以下文章原文来自于Dr Charles Severance 的 《Python for Informatics》
11.1 正则表达式的字符匹配
我们可以用许多其它的特殊字符创建更加强大的正则表达式。最常用的特殊符号是可匹配任何字符的句号(".")。在以下的示例中,正则表达式”F..m:“将匹配”From:”,“Fxxm:",”F12m:“,或者”F!@m:“等类似字符串,因为表达式中间的句号可匹配任何字符。
import re hand = open('mbox-short.txt') for line in hand: line = line.rstrip() if re.search('^F..m:', line): print line
在正则表达式中组合使用表示一个字符任意重复次数的星号(”*")和加号("+")会使表达式特别强大。其中星号表示在查找的字符串中,匹配字符可以重复出现零次以上,而加号则是重复一次以上。
在下面的示例中,我们使用重复的通配符进一步缩小我们的查找范围:
import re hand = open('mbox-short.txt') for line in hand: line = line.rstrip() if re.search('^From:.+@', line): print(line)
查找字符串“From:.+@”将成功匹配那些以“From:”开头,接着跟着一个以上任意字符,再跟着一个“@”符的行。所以这会匹配类似以下的行:
From: stephen.marquard @uct.ac.za
这个".+"通配符扩展匹配所有从冒号到@符之间的所有字符。
From:.+@
加号和星号符的“一意孤行”的被认为是好的。例如以下的字符串将被外推至最后的@符而匹配:
From:stephen.marquard@uct.ac.za, csev@umich.edu, and cwen @iupui.edu
让星号符和加号符不这么贪婪也是可以的,但是需要添加另外的符号。如何关闭它们贪婪的行为请参看详细的文档。
相关阅读:
Python for Informatics 第11章 正则表达式(一)
Python for Informatics 第11章之正则表达式(四)
关于Python for Informatics 第11章 正则表达式(二)的相关内容就给大家介绍这么多,后续还会持续更新,更多精彩内容敬请关注!
本章主题 ♦ 引言/动机 ♦ 特别的字符和符号 ♦ 正则表达式与Python ♦ re模块 15.1 引言/动机 处理文本和数据是件大事。如果你不相信我说的话,请仔细看看现如今的计算机主要都在做些什么工作:文字处理、网页填表、来自数据库的信息流、股票报价信息、新闻列表,这个清单还会不断地增长。因为我们可能不知道这些需要计算机编程处理文本或数据的具体内容,所以能把这些文本或数据以某种可被计算机识别和
为了充分发挥shell编程的威力,你需要精通正则表达式。 在脚本编程中的一些命令和软件包普遍使用正则表达式,例如grep, expr, sed和awk. 点 --.-- 匹配除了新行符之外的任意一个字符. 美元符 --$-- 在正则表达式中匹配行尾. "^$"匹配空行. 方括号 --[...]-- 在正则表达式中表示匹配括号中的一个字符. "[xyz]"匹配字符x, y, 或z. "[c-n]"匹
第 7 章 正则表达式 7.1. 概览 7.2. 个案研究:街道地址 7.3. 个案研究:罗马字母 7.3.1. 校验千位数 7.3.2. 检验百位数 7.4. 使用{n,m} 语法 7.4.1. 校验十位数和个位数 7.5. 松散正则表达式 7.6. 个案研究: 解析电话号码 7.7. 小结 正则表达式是搜索、替换和解析复杂字符模式的一种强大而标准的方法。如果你曾经在其他语言(如Perl)中使用
第 32 章 正则表达式 目录 1. 引言 2. 基本语法 3. sed 4. awk 5. 练习:在C语言中使用正则表达式
正则表达式,是一个描述字符模式的对象。javascript的RegExp类表示正则表达式,String和RegExp都定义了方法,后者使用正则表达式进行强大的模式匹配和文本检索与替换功能。javascript的正则表达式是perl5的这种表达式语法的大小子集,所以多有perl编程经验的程序员来说,学习javascript的正则表达式是小菜一碟。 本章首先介绍用以描述“文本模式”的正则表达式语法。随
模式是具有某个可识别属性的对象组成的集合。字符串集合就是一类模式,比如C语言合法标识符的集合,其中每个标识符都是个字符串,由字母、数字和下划线组成,开头为字母或下划线。另一个例子是由只含0和1的给定大小数组构成的集合,读字符的函数可以将其解释为表示相同符号。图10-1就展示了全都可以解释为字母A的3个7×7数组。所有这样的数组就可以构成模式“A”。 0001000 0000000 0001
昨天,我需要向正则表达式添加一个文件路径,创建一个如下所示的模式: 一开始正则表达式不匹配,因为包含几个正则表达式特定的符号,如 或 。作为快速修复,我将它们替换为 和 . 与 . 然而,我问自己,是否没有一种更可靠或更好的方法来清除正则表达式特定符号中的字符串。 Python 标准库中是否支持此类功能? 如果没有,您是否知道一个正则表达式来识别所有正则表达式并通过替代品清理它们?
常用正则表达式 说明:正则表达式通常用于两种任务:1.验证,2.搜索/替换。用于验证时,通常需要在前后分别加上\^和\$,以匹配整个待验证字符串;搜索/替换时是否加上此限定则根据搜索的要求而定,此外,也有可能要在前后加上\b而不是\^和\$。此表所列的常用正则表达式,除个别外均未在前后加上任何限定,请根据需要,自行处理。 校验数字的表达式 1. 数字:^[0-9]*$ 2. n位的数字:^\d{n