# 二维数组中的查找
题目描述:讲述一下 python 中正则 re 模块下 search 和 match 区别。
# 练习
if __name__ == '__main__': | |
import re | |
string = 'cat like fish, rabbit like carrot.' | |
sub_string = re.sub('like', 'hate', string, flags=re.I) | |
print(sub_string) # 输出:cat hate fish, rabbit hate carrot. | |
search_string = re.search('like', string, flags=re.I) | |
print(search_string) # 输出:<_sre.SRE_Match object; span=(4, 8), match='like'> | |
match_string1 = re.match('like', string, flags=re.I) | |
match_string2 = re.match('.*(like).*', string, flags=re.I) | |
match_string3 = re.match('cat', string, flags=re.I) | |
match_string4 = re.match('.*(fish|carrot).*', string, flags=re.I).groups() | |
print(match_string1) # 输出:None | |
print(match_string2) # 输出:<_sre.SRE_Match object; span=(0, 34), match='cat like fish, rabbit like carrot.'> | |
print(match_string3) # 输出:<_sre.SRE_Match object; span=(0, 3), match='cat'> | |
print(match_string4) # 输出:('carrot',) | |
find_string1 = re.findall('like', string, flags=re.I) | |
find_string2 = re.findall('like|carrot', string, flags=re.I) | |
print(find_string1) # 输出:['like', 'like'] | |
print(find_string2) # 输出:['like', 'like', 'carrot'] | |
print('End!') |
# 分析
- re.sub 用于替换字符串
- re.search 用于查找字符串,无论该字符串出现在开始还是中间,只要出现就会返回 match 对象,match 对象里有出现的位置
- re.match 用于查找字符串,如果不是正则 pattern,只从头搜索(或者说只匹配字符串的开始字符),如果 match 不上返回 None
- re.findall 用于查找字符串,返回一个搜索到的目标 list
- re.match 有 1 个 groups 方法,可以返回一个元组对象