# 二维数组中的查找

题目描述:讲述一下 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!')

# 分析

  1. re.sub 用于替换字符串
  2. re.search 用于查找字符串,无论该字符串出现在开始还是中间,只要出现就会返回 match 对象,match 对象里有出现的位置
  3. re.match 用于查找字符串,如果不是正则 pattern,只从头搜索(或者说只匹配字符串的开始字符),如果 match 不上返回 None
  4. re.findall 用于查找字符串,返回一个搜索到的目标 list
  5. re.match 有 1 个 groups 方法,可以返回一个元组对象
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Jalen Chu 微信支付

微信支付

Jalen Chu 支付宝

支付宝

Jalen Chu 公众号

公众号