您的位置:首页 > 编程语言 > Python开发

正则表达式_re 模块

2017-08-14 17:58 127 查看
首先得知道什么是转义:

转义符

假设你想要在一个字符串中包含一个单引号(’),那么你该怎么指示这个字符串?例如,这个字符串是What’s your name?。你肯定不会用’What’s your name?’来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。所以,你需要指明单引号而不是字符串的结尾。可以通过 转义符 来完成这个任务。你用\’来指示单引号——注意这个反斜杠。现在你可以把字符串表示为’What\’s your name?’。

另一个表示这个特别的字符串的方法是”What’s your name?”,即用双引号。类似地,要在双引号字符串中使用双引号本身的时候,也可以借助于转义符。另外,你可以用转义符\来指示反斜杠本身。

值得注意的一件事是,在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。例如:

"This is the first sentence.\
This is the second sentence."


等价于”This is the first sentence. This is the second sentence.”

re模块:

在 Python 中,我们可以使用内置的 re 模块来使用正则表达式。

有一点需要特别注意的是,正则表达式使用 \ 对特殊字符进行转义,比如,为了匹配字符串 ‘python.org’,我们需要使用正则表达式 ‘python.org’,而 Python 的字符串本身也用 \ 转义,所以上面的正则表达式在 Python 中应该写成 ‘python\.org’,这会很容易陷入 \ 的困扰中,因此,我们建议使用 Python 的原始字符串,只需加一个 r 前缀,上面的正则表达式可以写成:

r'python\.org'


re 模块提供了不少有用的函数,用以匹配字符串,比如:

compile 函数

match 函数

search 函数

findall 函数

finditer 函数

split 函数

sub 函数

subn 函数

re 模块的一般使用步骤如下:

使用 compile 函数将正则表达式的字符串形式编译为一个 Pattern 对象

通过 Pattern 对象提供的一系列方法对文本进行匹配查找,获得匹配结果(一个 Match 对象)

最后使用 Match 对象提供的属性和方法获得信息,根据需要进行其他的操作

这里由于目前只遇到了compile 函数和split方法,因而只详细介绍一下它们:

compile 函数

compile 函数用于编译正则表达式,生成一个 Pattern 对象,它的一般使用形式如下:

re.compile(pattern[, flag])


其中,pattern 是一个字符串形式的正则表达式,flag 是一个可选参数,表示匹配模式,比如忽略大小写,多行模式等。

下面,让我们看看例子。

import re

#将正则表达式编译成 Pattern 对象
pattern = re.compile(r'\d+')#对pattern对象可以使用下述的方法


在上面,我们已将一个正则表达式编译成 Pattern 对象,接下来,我们就可以利用 pattern 的一系列方法对文本进行匹配查找了。Pattern 对象的一些常用方法主要有:

match 方法

search 方法

findall 方法

finditer 方法

split 方法

sub 方法

subn 方法

split 方法:

split 方法按照能够匹配的子串将字符串分割后返回列表,它的使用形式如下:

split(string[, maxsplit])


其中,maxsplit 用于指定最大分割次数,不指定将全部分割。

看看例子:

import re

p = re.compile(r'[\s\,\;]+')
print p.split('a,b;; c   d')


执行结果:

['a', 'b', 'c', 'd']
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息