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)
    

      

  • 相关阅读:
    《程序猿闭门造车》之NBPM工作流引擎
    CryptographicException异常处理方法
    nodejs简单模仿web.net web api
    Windows Mobile设备操作演示准备工作小记
    PPT定时器小记
    winDBG排错小记
    Ubuntu 16.04应用布署小记
    Ubuntu 16.04环境布署小记
    Ubuntu 16.04系统布署小记
    Dokuwiki布署小记
  • 原文地址:https://www.cnblogs.com/cloniu/p/6224895.html
Copyright © 2011-2022 走看看