7.python之正则表达式re模块

一.re模块的常用方法:

re.findall() 用于返回一个字符串中,所有能被正则表达式所匹配到的字符串,以列表的方式返回。

用法re.findall(正则表达式,字符串)。

s1 = "sadjhjafdsajkhjsdaysadsadduayu"

比如说,想要从上面这一长串字符串中,匹配出a后面有一个任一字符在紧接着一个字母u的字符串。

print re.findall(‘a.u‘,s1)

>>>[‘ayu‘]

re.finditer()作用和findall一样,不过finditer返回的并不是个列表,而是个迭代器对象,如果需要迭代操作,推荐使用finditer方法。

re.search() 在字符串中按照正则表达式去查找匹配所需要的字符串,只找第一个匹配到的结果,然后返回一个match对象,这个对象中包含了,通过正则表达式匹配的信息,我们可以通过执行该对象.group方法去获取所匹配到的字符串,如果找到想匹配的字符串,就回返回一个None。

用法:re.search(正则表达式,字符串,flag)

s1 = "hamasaki ayumi"

print re.search(‘a.u‘,s1).group()

>>>ayu

re.match()字符串中按照正则表达式去查找匹配所需要的字符串,和search不同的是match只会从字符串的开头进行匹配!如果字符串开始不符合正则表达式,则匹配失败!

用法和search是一样的。

re.split()按照指定的正则表达式去拆分字符串。

例:

以所有的字符串做为分隔符。

s = "a1b2c3d4e5"

print re.split(r‘\d‘,s)

>>>[‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘‘]

re.sub()替换,使用正则表达式匹配出字符串中的指定内容,然后将其替换成指定的字符串。

s = "a1b2c3d4e5"

print re.sub(r‘[a-z]‘,‘ayu‘,s)

>>>ayu1ayu2ayu3ayu4ayu5

re.sub()函数还有个参数,可以设置替换多少次。

比如说,只想替换前三个匹配到的。

s = "a1b2c3d4e5"

print re.sub(r‘[a-z]‘,‘ayu‘,s,3)

>>>ayu1ayu2ayu3d4e5

re.subn() 和sub一样,都是通过正则来替换字符串内容的功能,但是subn会返回一个元组,这个元组里不单单只有替换后的字符串,还包含了这个字符串中的内容被替换了几次。

例如:

s = "a1b2c3d4e5"

print re.subn(r‘[a-z]‘,‘ayu‘,s)

>>>(‘ayu1ayu2ayu3ayu4ayu5‘, 5)

re.compile() 编译,可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率。

二.python正则表达式之分组。

python中正则常用的分组方式大概分为两种。

方法1:

print re.search(r‘(^\d{3,4})-(\d{3,8})‘,‘010-123456‘).group(0)

>>>010-123456

print re.search(r‘(^\d{3,4})-(\d{3,8})‘,‘010-123456‘).group(1)

>>>010

print re.search(r‘(^\d{3,4})-(\d{3,8})‘,‘010-123456‘).group(2)

>>>123456

如果正则表达式中定义了组,就可以在Match对象上用group()方法提取出子串。

注意到group(0)永远是原始字符串,group(1)、group(2)……表示第1、2、……个子串。

方法2:

命名分组

print re.search(r‘(?P<zone_num>^\d{3,4})-(?P<phone_num>\d{3,8})‘,‘010-123456‘).group("zone_num")

>>>010

print re.search(r‘(?P<zone_num>^\d{3,4})-(?P<phone_num>\d{3,8})‘,‘010-123456‘).group("phone_num")

>>>123456

时间: 2024-10-17 08:53:18

7.python之正则表达式re模块的相关文章

Python:正则表达式 re 模块

正则是处理字符串最常用的方法,我们编码中到处可见正则的身影. 正则大同小异,python 中的正则跟其他语言相比略有差异: 1.替换字符串时,替换的字符串可以是一个函数 2.split 函数可以指定分割次数,这会导致有个坑 3.前项界定的表达式必须定长 下面详细描述下 re 模块的使用方法,其实,注意上面提到的三点差异就好 1.match 说明: re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回 None. 语法: re.match(pat

python—day17 正则表达式 re模块

re模块: 什么是正则?就是把一系列特殊意义的字符串组合到一起成为正则表达式,通过re模块来调用正则方法: 1 import re 2 print(re.findall('\w','kermitjam kermitjam _ [email protected]$%#^&%*)_)')) #\w 字母数字下划线 3 print(re.findall('\W','kermitjam kermitjam _ [email protected]$%#^&%*)_)')) #\W 非字母数字下划线

Python:正则表达式re模块

正则表达式是一种用预先定义的特殊字符来描述或匹配特定'模板'的一系列字符串的一种工具.在计算机语言中,正则表达式通常被用来搜索.替换某些符合特定规则的文本.这么说太教条,估计很多人看了也不明白. 通俗来讲,正则表达式就是定义了一些特殊的字符,用来表示特定的一系列具有类似特性的东西,或者用特殊字符表示特定的规则.这么说还是不明白,还是举例说明吧. 比如说你想在一个文本里面找出所有的手机号码.首先我们分析,既然是手机号码,那么肯定都是数字.而我们定义了\d用来表示任意0-9的数字.然后我们还知道手机

Python中正则表达式(re模块)的使用

1.正则表达式的概述 (1)概述:正则表达式是一些由字符和特殊符号组成的字符串,他们描述了模式的重复或者表示多个字符,正则表达式能按照某种模式匹配一系列有相似特征的字符串.正则表达式是一种小型的.高度的专业化的编程语言, (2)Python语言中的正则表达式内嵌在Python中通过re模块实现,正则表达式被编译成一系列的字节码,然后由C编写的匹配引擎执行 2.字符匹配 (1)符号匹配 符号 描述 示例 实例说明 literal 匹配文本字符串的字面值literal root 匹配字符串root

Python 正则表达式re模块使用

re是Python的正则表达式模块,在此记录实际开发过程中的使用. 正则表达式的最佳实践是使用re.compile方法编译后使用,效率会更好 1.re.search() example: TS 1423031065.017865025 2015-02-04 14:24:25  14:24:25 up 82 days, 23:51,  2 users,  load average: 0.02, 0.03, 0.10 匹配 TS开头跟一个空格后跟若干个数字. >>> import re &g

Python文件交互,模块与Pickle序列化,正则表达式re模块

先说点其他的. sudo       以超级权限运行命令 su         切换到root用户 sudo su    以超级权限切换到root用户 这是他们之间的区别. 文件的读取: f = file('abc.txt') 与f = open('abc.txt')方法一样. f = file('abc.txt',w)打开一个写文件,不带参数默认打开一个读文件. 模式有: r ## w ## a ## rw ## rb ## wb ## ab## f.read() 返回字符串 f.readli

Python re正则表达式模块学习【转】

感谢原作者,本文转自:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 博主还有一些比较好的python文档在此一并推荐,可以移步查看. 文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程. 注意:本文基于Python2.4完成:如果看到不明白的词汇请记得百度谷歌或维基,whate

python os、sys模块、时间模块、正则表达式

python os.sys模块 OS模块是Python标准库中的一个用于访问操作系统功能的模块,OS模块提供了一种可移植的方法使用操作系统的功能.使用OS模块中提供的接口,可以实现跨平台访问.但是在OS模块中的接口并不是所有平台都通用,有些接口的实现是依靠特定平台下的接口的.在OS模块中提供了一系列访问操作系统功能的接口,便于编写跨平台的应用. OS模块常用命令 os.getcwd()--得到当前工作的目录 os.chmod("usr/local",7) --给文件/目录加权限 os.

python re正则表达式模块

模块的的作用主要是用于字符串和文本处理,查找,搜索,替换等 复习一下基本的正则表达式吧  .:匹配除了换行符以为的任意单个字符  *:匹配任意字符,一个,零个,多个都能匹配得到 俗称贪婪模式 +:匹配位于+之前的一个或者多个字符  |:匹配位于|之前或者之后的字符  ^:匹配行首  $:匹配行尾  ?:匹配位于?之前的零个或者一个字符,不匹配多个字符  \:表示 \ 之后的为转义字符  []:匹配[]之中的任意单个字符,[0-9]表示匹配0到9任意一个数字  ():将位于()之内的的内容当作一个