• 正则表达式-精髓


    '''re.match() 从头匹配 如果第一个字符串是h 就会匹配到, 反之则不会。'''
    ''' 不分组  只有group 得到结果'''
    origin = 'hello alex bcd alex lge alex acd 19'
    r = re.match('hw+',origin)
    print(r.group()) #获取匹配到的所有结果
    print(r.groups()) #获取模型中匹配到的分组结果
    print(r.groupdict()) #获取模型中匹配到的分组结果
    
    ''' 分组 加上‘括号’后 groups 就会得到结果 '''
    origin = 'hello alex bcd alex lge alex acd 19'
    r = re.match('h(w+)',origin)
    print(r.group()) #获取匹配到的所有结果
    print(r.groups()) #获取模型中匹配到的分组结果
    print(r.groupdict()) #获取模型中匹配到的分组结果
    
    ''' 分组 在括号里加上?P<keys>  P要大写 就会給元素匹配一个字典的值  groupdict 就会得到结果 '''
    origin = 'hello alex bcd alex lge alex acd 19'
    r = re.match("(?P<n1>h)(w+)",origin)
    print(r.group()) #获取匹配到的所有结果
    print(r.groups()) #获取模型中匹配到的分组结果
    print(r.groupdict()) #获取模型中匹配到的分组结果
    
    '''re.search() 浏览全部字符串,匹配第一个符合规则的字符串    .* 匹配除换行符所有字符 '''
    origin = 'hello alex bcd alex lge alex acd 19'
    r = re.search("a(w+).*(?P<name>d)",origin)
    print(r.group()) #获取匹配到的所有结果
    print(r.groups()) #获取模型中匹配到的分组结果
    print(r.groupdict()) #获取模型中匹配到的分组结果
    
    
    '''re.findall() 将匹配到的所有内容都防止在一个列表中 从头开始匹配,如果匹配到,下次匹配从上次匹配的后面开始匹配。
        findall里面加?P<keys> 是不起作用的。只在group里面起作用 '''
    r = re.findall('d+wd','a2f2b32d2')
    print(r)
    origin = 'hello alex bcd alex lge alex acd 19'
    r = re.findall('a(w+)',origin)
    print(r)
    
    
    '''finditer 是一个迭代器,把寻找的字符都迭代在一起了,通过for 循环取值。可以group()  '''
    origin = 'hello alex bcd alex lge alex acd 19'
    r = re.finditer('a(w+)(?P<n1>x)',origin)
    print(r)
    for i in r:
        print(i,i.group(),i.groups(),i.groupdict())
    
    n = 'alex'
    r = re.findall(r'(w)(w)(w)(w)',n)
    print(r)
    r = re.findall(r'(w){4}',n)
    print(r)
    
    
    ''' re.split() 对匹配对象进行分割,并且删除,一直匹配下去,直到匹配结束。后面加参数可指定匹配次数。'''
    origin = 'helloalex bcdalex lgealex acd19'
    r = re.split('(aw+)',origin,1)
    print(r)
    
    ''' re.sub() 找到匹配对象,对它进行替换。后面加参数可以控制替换次数。'''
    origin = 'hello alex bcd alex lge alex acd 19'
    r = re.sub('l','7',origin,1)
    print(r)
    
    
    ''' re.subn() 找到匹配对象,对它进行替换。然后返还替换次数。后面加参数可以控制替换次数。'''
    origin = 'hello alex bcd alex lge alex acd 19'
    r,t= re.subn('l','7',origin,)
    print(r,t)
    

      

  • 相关阅读:
    redis——事务
    redis——队列
    linux安装mysql5.7
    转载:centos7yum默认为阿里云镜像
    redis——缓存穿透、缓存击穿、缓存雪崩
    redis——持久化
    redis——分布式锁
    并发编程实践
    Java并发包中线程同步器
    并发包中ScheduledThreadPoolExecutor
  • 原文地址:https://www.cnblogs.com/cloniu/p/6224895.html
Copyright © 2020-2023  润新知