正则匹配
2017-07-12 12:12:56
主要方法
search : 在字符串中查找匹配模式的字符
match : 在字符串的开始出查找是否满足匹配的字符串
findall(pattern,string,flag): 查找匹配的字符,并返回一个list
finditer(pattern,flag): 查找匹配的字符,并返回一个lter
spit(pattern,max=0): 按照模式切割字符串
sub(pattern,repl,max=0):按照模式替换该字符串
groups(num=0): 返回一个包含全部匹配的子组的元祖
group():返回全部的匹配对象
import re pattern = re.compile('foot') # compile 对正则表达式的模式进行编译 text = 'foo/foot/basfoo' res = pattern.search(text) print(res) # <_sre.SRE_Match object; span=(0,3),match='foo'> res = re.search(pattern,text) print(res) # <_sre.SRE_Match object; span=(0,match='foo'> # search res = pattern.match(text) print('match:',res) #output :match: None """ search 与match 的区别主要在于 match 匹配字符串一开始如果和正则表达式的模式不同,则不再查找, search 会查找整个字符串 """ """在多行模式下match也只匹配string的开头部分,而用了’^’正则的re.search()可以匹配多行""" re.match('X','A\nB\nX',re.MULTILINE) # No match re.search('^X',re.MULTILINE) # Match res_list =re.findall(pattern,text) # 返回出来一个对象列表 print(res_list)#['foot'] res_iter = re.finditer(pattern,text) print(res_iter) #split 分割 pattern = re.compile('f') re_split = re.split(pattern,text,5) print(res_list) # sub 替换字符 res_sub =re.sub(pattern,'demo',text) print(res_sub)#demooo/demooot/basdemooo