正则匹配

2017-07-12 12:12:56

主要方法

  1. search : 在字符串中查找匹配模式的字符

  2. match : 在字符串的开始出查找是否满足匹配的字符串

  3. findall(pattern,string,flag): 查找匹配的字符,并返回一个list

  4. finditer(pattern,string,flag): 查找匹配的字符,并返回一个lter

  5. spit(pattern,string,max=0): 按照模式切割字符串

  6. sub(pattern,repl,string,max=0):按照模式替换该字符串

  7. groups(num=0): 返回一个包含全部匹配的子组的元祖

  8. 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

 

FIZLIN
514 声望8 粉丝

跟我走吧,天亮就出发


引用和评论

0 条评论