首页 > 代码库 > 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的实例


python进阶十_正則表達式(一)