Python核心编程--正则表达式

Python核心编程–正则表达式

正则表达式为高级的文本模式匹配、抽取、与/或文本形式的搜索和替换功能提供了基础。正则表达式(regex)是一些由字符和特殊符号组成的字符串,它们描述了模式的重复或者表述多个字符,于是正则表达式能按照某种匹配一系列有相似特征的字符串。Python通过标准库中的re模块来支持正则表达式。

常见正则表达式符号和特殊字符

Python核心编程--正则表达式
Python核心编程--正则表达式
最常用的正则表达式符号,即*、+和?,所有这些都可以用于匹配一个、多个或者没有出现的字符串模式。

正则表达式与python编程

Python核心编程--正则表达式

举例:

match()
Python核心编程--正则表达式
match()是将要介绍的第一个re模块函数和正则表达式对象(regex object)方法。match()函数试图从字符串的起始部分对模式进行匹配。如果匹配成功,就返回第一个匹配对象;如果匹配失败,就返回None,匹配对象的group()方法能够用于显示那个成功的匹配。

search()
Python核心编程--正则表达式
search()的工作方式与match()完全一致,不同之处在于search()会用它的字符串参数,在任意位置对给定正则表达式模式搜索第一次出现的匹配情况。

findall()和findite()
Python核心编程--正则表达式
findall()查询字符串中某个正则表达式模式全部的非重复出现情况。这与search()类似,不同在于,findall()返回一个列表(从左到右按出现顺序排列)。
Python核心编程--正则表达式
和findall()相比,finditer()返回的是迭代器。
注意:书上的代码为2.7版本,我使用的是3.6,所以需要将原先的next()改为__next__()。

sub()和subn()
Python核心编程--正则表达式
sub()和subn()两者几乎一样,都是将某字符串中所有匹配正则表达式的部分进行某种形式的替换。sub()返回替换后的字符串,subn()还返回一个表示替换的总数。

split()
Python核心编程--正则表达式
如果给定分隔符不是使用特殊符号来匹配多重模式的正则表达式,那么re.split()与str.split()的工作方式相同。
Python核心编程--正则表达式
上述就是正则表达式拥有一个简单的组件:使用split语句基于逗号分隔字符串。