码迷,mamicode.com
首页 > 其他好文 > 详细

re 模块

时间:2017-11-08 00:53:13      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:mat   code   compile   pre   一个   abc   匹配   用法   def   

re.findall() :用于从一个字符串中匹配指定的字符

In [18]: import re

In [32]: re.findall(rab, abcdabcd)     # 表示从字符串‘abcdabcd‘中匹配包含‘ab‘字符,结果以列表的形式返回
Out[32]: [ab, ab]

In [19]: re.findall(r^ab, abcdefg)     # 表示从字符串‘abcdefg‘中匹配以‘ab‘开头的字符,结果以列表的形式返回
Out[19]: [ab]

In [52]: re.findall(rab, abcdABcd, re.I)    # re.I 是一个标记,表示匹配的时候不区分大小写
Out[52]: [ab, AB]
In [
54]: re.findall(rfoo$, foo\nfoo\nfoo, re.M) # re.M 用于对每一行进行匹配,如果不加的话只会打印一个‘foo‘,也就是忽略了‘\n‘的换行作用 Out[54]: [foo, foo, foo]

re.match() :用法与 re.findall() 一致,但只匹配开头的位置,且 re.match() 返回的是一个对象,需要用 group() 方法来查看所匹配到的内容

In [32]: re.findall(rab, abcdabcd)     # findall()可以匹配到所有指定的字符
Out[32]: [ab, ab]

In [34]: m = re.match(ab, abcdabcd)    # match()只能匹配开头的字符

In [35]: m.group()
Out[35]: ab

re.search() :用法与 re.findall() 一致,但 re.findall() 会匹配所有包含的字符,而 re.search() 只匹配一个包含的字符

In [42]: re.findall(rab, abcdabcd)
Out[42]: [ab, ab]

In [43]: m = re.search(rab, abcdabcd)

In [44]: m.group()    # 同理用group()方法查看
Out[44]: ab

re.sub() :用于替换字符串

In [45]: re.sub(rab, AB, abcdabcd)               # 表示将字符串‘abcdabcd‘中的‘ab‘都替换成‘AB‘
Out[45]: ABcdABcd

In [46]: re.sub(rab, AB, abcdabcd, count=1)      # count=1 可以指定只替换一次
Out[46]: ABcdabcd

re.compile() :用于将正则表达式编译成对象,并用它们来进行匹配

In [48]: p = re.compile(rab)    # 先将要匹配的内容(即正则表达式)进行编译
 
In [49]: p.findall(abcdabcd)    # 这里就可以直接匹配,提高效率
Out[49]: [ab, ab]

In [50]: p.search(abcdabcd).group()
Out[50]: ab

In [51]: p.match(abcdabcd).group()
Out[51]: ab

 

 

 

 

 

 

    

re 模块

标签:mat   code   compile   pre   一个   abc   匹配   用法   def   

原文地址:http://www.cnblogs.com/pzk7788/p/7801943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!