首页 > 代码库 > python进阶十_正则表达式(一)

python进阶十_正则表达式(一)

最近状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思完全不在点上,希望可以借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,如果真的是我自己的问题呢,以前我经常跟别人说,千万不要怀疑自己,因为很清楚一旦连自己都变的不可信,那这个世界就太疯狂了,当一遍一遍的问我,现在连我自己都快怀疑自己了,我一遍一遍的说服别人,想不到现在竟然需要自己去说服自己,何其的悲哀~

一.正则表达式基础

1.基本概念

正则表达式是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、以及这些特定字符的组合,组成一个“规则字符串”,用这个“规则字符串”来对字符串进行一种逻辑过滤。

2.常见构造

下面这张图是盗用的,出处http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html


二.正则表达式实践

1.查找文本中的模式

re模块是我们在Python中使用最多的正则表达式模块,常见用法就是搜索文本中的模式,search()函数以模式和要扫描的文本作为输入,如果找到匹配这个模式的则返回一个match对象,否则返回None,每个Match对象都包含有关匹配性质的信息,包括原输入字符串,使用的正则表达式以及模式在原字符串中出现的位置。示例如下:


本来是直接在subline Text2上面编译的,但是发现编译之后没反应,稍微检查一下之后发现自己SB了,存在中文路径,就只好用Python 编辑器来了。

2.编译表达式

re模块包含很多模块级函数,用于处理文本字符串的正则表达式,但是对于程序频繁使用的表达式,编译这些表达式会显得很高效,re模块中的compile()函数就体现出了它的价值,如下:


3.多重匹配

在之前的例子中,我们都是使用的search()来查找文本的单个实例,但是假如我想查找一个文本中所有不重叠的满足模式的字串怎么办呢?这里就要用到findall(),示例如下:


Finditer()返回一个迭代器,指向match的实例