python正则表达式详细使用说明

您所在的位置:网站首页 python中字符串界定符有几种 python正则表达式详细使用说明

python正则表达式详细使用说明

#python正则表达式详细使用说明| 来源: 网络整理| 查看: 265

1.概念

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

2 函数2.1search()和match()

语法:search(pattern,string[,flags]) 扫描整个字符串并返回第一个成功的匹配字串或None。

参数描述pattern匹配的正则表达式string要匹配的字符串。flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 - 可选标志

match()和search()函数非常相似,它们的区别如下所示

search():在输入字符串中查找,返回第一个匹配内容,如果找到一个则match对象,如果没有找到返回None。 match():在输入字符串开始处查找匹配内容,如果找到一个则match对象,如果没有找到返回None。

match对象有一些常用方法,group()方法返回匹配的子字符串;start()方法返回子字符串的开始索引;end()方法返回子字符串的结束索引;span方法返回子字符串的跨度,它是一个二元素的元组。

2.2 findall()和finditer()

findall()和finditer()函数非常相似,它们的区别如下所示

findall():在输入字符串中查找所有匹配内容,如果匹配成功,则返回match列表对象,如果匹配失败则返回None finditer():在输入字符串中查找所有匹配内容,如果匹配成功,则返回容纳match的可迭代对象,通过迭代对象每次可以返回一个match对象,如果匹配失败则返回None

2.3 split()

字符串分割使用split函数,该函数按照匹配的子字符串进行字符串分割,返回字符串列表对象

1re.split(pattern, string, maxsplit=0, flags=0)

其中参数pattern是正则表达式;参数string是要分割的字符串;参数maxsplit是最大分割次数,maxsplit默认值为零,表示分割次数没有限制;参数flags是编译标志

2.4 sub()和subn()

字符串替换使用sub()函数,该函数用于替换匹配的子字符串,返回值是替换之后的字符串

re.sub(pattern, rep1, string, count=0, flags=0)

其中参数pattern是正则表达式;参数rep1是替换字符串,或者一个函数;参数string是要提供的字符串;参数count是要替换的最大数量,默认值为零,表示替换数量没有限制;参数flags是编译标志

subn()和 sub()一样,但 subn()还返回一个表示替换的总数,替换后的字符串和表示替换总数的数字一起作为一个拥有两个元素的元组返回。

2.5 compile(pattern, flags=0)

将正则表达式res编译成一个正则对象并返回,以便复用,可以提高速度。

但是从python的源码看,其实compile以及被集成到其他函数中,比如findall中就调用了compile,所以re.compile()是完全没有必要的,可以作为了解。

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

>>>importre >>> pattern = re.compile(r'\d+')# 用于匹配至少一个数字 >>> m = pattern.match('one12twothree34four')# 查找头部,没有匹配 >>> print(m)None >>> m = pattern.match('one12twothree34four', 2, 10)# 从'e'的位置开始匹配,没有匹配 >>> print(m)None >>> m = pattern.match('one12twothree34four', 3, 10)# 从'1'的位置开始匹配,正好匹配 >>> print(m)# 返回一个 Match 对象


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3