正则匹配
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