Python正则表达式(一)

时间:2014.01.12

地点:软件大楼

————————————————————————————————————

一、简述

  Python中通过re模块支持强大的正则表达式,以完成对复杂字符串的操作关于正则表达式的基础知识见:

———————————————————————————————————— 。

二、知识点

  2.1匹配和搜索

 re.match() ——用于正则表达式的字符串匹配,匹配成功返回MatchObject对象实例。

 re.search()——用于正则表达式的字符串查找,如果找到返回MatchObject对象实例。

以上二者作用基本一样,只是re.match()从字符串中第一个字符开始匹配,而re.search()则搜索整个字符串。

 re.findall()——用于在字符串中查找所以符合正则表达式的字符串,并返回这些字符串的列表。若表达式中使用了组,则返回一个元组。

import re
s='you are the best'
print re.match('are',s)          #从字符串中第一个字符开始匹配,匹配失败,返回None
print re.search('are',s)         #在整个字符串中搜索匹配,可以匹配成功,返回匹配对象实例
print re.match('Y.*',s)          #s中第一个字符为y,匹配不成,返回None
print re.match('y.*',s)          #首字符匹配成功,返回匹配对象实例
print re.match('Y.*',s,re.I)     #参数re.I,标志位,表示忽略大小写进行匹配
re.findall('[a-z]{3}',s)         #找出所有三个连字母的子字串,返回一个列表:['you', 'are', 'the', 'bes']
re.findall('[a-z]{1,3}',s)#找出所有1至3个连字母的子字串,返列表:['you', 'are', 'the', 'bes', 't']

三种匹配过程中标志设置是可有可无的,常用有如下选择

re.I ——忽略大小写                re.S ——使用  .(点号)元字符匹配换行符

re.U ——匹配Unicode字符      re.X ——忽略pattern匹配模式中的空格

还有几个我自己觉得不怎么常用就不说了,这几个标志可以同时使用,使用 | 对标志进行运算

————————————————————————————————————

2.2替换

re.sub() 用于替换字符串中符合正则表达式的内容,返回替换后的字符串。

re.subn() 返回替换后的一个元组

import re
s='you are the best'
print re.sub('are','new',s)               #用 new 替换字符串s中的are         ——you new the best
print re.sub('are|the','new',s)           #用 new 替换字符串s中的are或者the  ——you new new best
print re.sub('are|the','new',s,1)         #用 new 替换字符串s中的are或者the,且只操作一次 ——you new the best
print re.subn('are|the','new',s,1)        #同上,但返回一个包含替换次数的元组——('you new the best', 1)
print re.subn('are|the','new',s)          #返回 ('you new new best', 2)
r= re.subn('are|the','new',s)
print r[0]
print r[1]



你可能感兴趣的:(python,正则表达式)