正则匹配
2017-07-12 12:12:56
主要方法
search : 在字符串中查找匹配模式的字符
match : 在字符串的开始出查找是否满足匹配的字符串
findall(pattern,string,flag): 查找匹配的字符,并返回一个list
finditer(pattern,string,flag): 查找匹配的字符,并返回一个lter
spit(pattern,string,max=0): 按照模式切割字符串
sub(pattern,repl,string,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, 3), 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', 'A\nB\nX', 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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。