正则表达式之match、search、findall、split、sub

import re 

re.match()   #从头匹配

 # 无分组
        r = re.match("hw+", origin)
        print(r.group())     # 获取匹配到的所有结果
        print(r.groups())    # 获取模型中匹配到的分组结果
        print(r.groupdict()) # 获取模型中匹配到的分组结果

 # 有分组

        # 为何要有分组?提取匹配成功的指定内容(先匹配成功全部正则,再匹配成功的局部内容提取出来)

        r = re.match("h(w+).*(?P<name>d)$", origin)
        print(r.group())     # 获取匹配到的所有结果
        print(r.groups())    # 获取模型中匹配到的分组结果
        print(r.groupdict()) # 获取模型中匹配到的分组中所有执行了key的组

re.search()  #在字符串的全局匹配,匹配第一次出现的符合规则的字符串

 # 无分组

        r = re.search("aw+", origin)
        print(r.group())     # 获取匹配到的所有结果
        print(r.groups())    # 获取模型中匹配到的分组结果
        print(r.groupdict()) # 获取模型中匹配到的分组结果

 # 有分组

        r = re.search("a(w+).*(?P<name>d)$", origin)
        print(r.group())     # 获取匹配到的所有结果
        print(r.groups())    # 获取模型中匹配到的分组结果
        print(r.groupdict()) # 获取模型中匹配到的分组中所有执行了key的组

re.findall()   #将匹配到的所有内容都放置在一份个列表中

 # 无分组
        r = re.findall("aw+",origin)
        print(r)

 # 有分组
        origin = "hello alex bcd abcd lge acd 19"
        r = re.findall("a((w*)c)(d)", origin)
        print(r)

re.split()

# 无分组
        origin = "hello alex bcd alex lge alex acd 19"
        r = re.split("alex", origin, 1)
        print(r)

# 有分组
        
        origin = "hello alex bcd alex lge alex acd 19"
        r1 = re.split("(alex)", origin, 1)
        print(r1)
        r2 = re.split("(al(ex))", origin, 1)
        print(r2)

re.sub()

 # 与分组无关

        origin = "hello alex bcd alex lge alex acd 19"
        r = re.sub("aw+", "999", origin, 2)
        print(r)
原文地址:https://www.cnblogs.com/huangguabushihaogua/p/9354934.html