python的re模块提供了有关正则表达式的方法。
常用方法与属性:
compile(pattern,flags=0) ---- 返回一个正则表达式对象,也就是说生成一个正则表达式模板,在多次使用同一个表达式的时候这个方法可以提高效率;
search(pattern,string,flags=0)-----返回一个match 对象;
match(pattern,string,flags=0)-----返回一个match对象;
search与match的区别是:match是从string的第一个字符开始匹配,如若第一个字符串没有匹配到,则返回None。search是对string的任何位置进行匹配。
sub(pattern,repl,string, count=0, flags=0);pattern参数是正则表达式;repl参数是匹配之后所需要替换的,可以是字符串或者函数;string参数是目标字符串。
-----返回的是一个新字符串;
subn(pattern,repl,string, count=0, flags=0) -----返回的是一个tuple(new_string,number_of_subs_mode);
purge() -----清除正则表达式缓存;
escape()-------对字符串中的非字母数字进行转义;
split(pattern,string,count=0,flags=0) ----根据pattern在string匹配,并在匹配处对string进行分割,返回的是一个list,list里面包含分割后的字符串集合;
====================================================================================
正则表达式对象(Regular Expression Objects)
一般通过re.compile(pattern)得到一个正则表达式对象;
常用方法:
search(string[,pos[,endpos]]) ----返回一个match对象。
match(string[,pos[,endpos]]) ----返回一个match对象。
split(string)-----利用模板对字符串进行分割;
sub(repl,string,count=0)
subn(repl,string,count=0)
============================================================
Match对象
可以利用re.match()或者re.search()得到一个match对象;
常用方法:
.group()----返回match对象的匹配结果
.groups()---返回匹配之后的元组
groupdict()----返回一个dict.这个结合pattern,比较灵活;
1 m = re.match(r"(?P<first_name>w+) (?P<last_name>w+)", "Malcolm Reynolds") 2 m.groupdict()
start([group])
end([group])
email = "tony@tiremove_thisger.net" m = re.search("remove_this", email) email[:m.start()] + email[m.end():]
输出:'tony@tiger.net'
span([group])------返回一个tuple(起始,结束);
一般在写正则表达式的时候我们习惯 r'正则' ,省去了好多的转义。