zoukankan      html  css  js  c++  java
  • 正则表达式-精髓

    '''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)
    

      

  • 相关阅读:
    深入理解计算机系统 第六章 存储器层次结构 第二遍
    深入理解计算机系统 第六章 存储器层次结构
    深入理解计算机系统 第八章 异常控制流 Part2 第二遍
    深入理解计算机系统 第八章 异常控制流 part2
    深入理解计算机系统 第八章 异常控制流 Part1 第二遍
    深入理解计算机系统 第八章 异常控制流 part1
    深入理解计算机系统 第三章 程序的机器级表示 Part2 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part2
    深入理解计算机系统 第三章 程序的机器级表示 Part1 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part1
  • 原文地址:https://www.cnblogs.com/cloniu/p/6224895.html
Copyright © 2011-2022 走看看