• re模块的高级使用


    主要有四个方法:

      search : 从字符串的任意位置开始检索,首次匹配即结束 

      findall : 全部匹配

      sub : 将正则匹配结果进行替换 

      split : 根据正则匹配结果将字符串进行切分,然后返回一个列表

    import re
    
    '''
        search  从字符串的任意位置搜索匹配,检索到第一个匹配的字符串,就结束匹配
    '''
    
    r = re.search(r'd+', '有点饿4556')
    print(r)
    print(r.group())  # 4556
    
    r = re.search(r'^d+$', '有点饿4556')
    print(r)  # None
    
    r = re.search(r'd+', '有点饿4556 rwehjr 789')
    print(r)
    print(r.group())  # 4556
    
    '''
        findall  从字符串的任意位置搜索匹配,匹配所有
    '''
    
    r = re.findall(r'd+', '有点饿4556 rwehjr 789')
    print(r)  # ['4556', '789']
    
    '''
    sub  将匹配到的数据进行替换
    '''
    
    r = re.sub(r'c', 'python', 'c一统江湖, c走向死往')
    print(r)  # python一统江湖, python走向死往
    
    r = re.sub(r'd+', '250', 'c=1000, python=3000')
    print(r)  # c=250, python=250
    
    
    def func(d):
        '''表示真正匹配到的结果'''
        print(d.group())  # 这里会打印 1000, 3000, 说明匹配了两次,也说明了func调用了两次
        return '666'  # 这里返回int类型竟然报错
    
    
    r = re.sub(r'd+', func, 'c=1000, python=3000')
    print(r) # c=666, python=666
    
    
    
    def func1(d):
        return  str(int(d.group())+50)
    
    r = re.sub(r'd+', func1, 'c=1000, python=3000')
    print(r) # c=1050, python=3050
    
    
    '''
    split 切分
    '''
    
    s = 'admin:root boot,jet'
    r = re.split(r':|s|,',s)
    print(r) # ['admin', 'root', 'boot', 'jet']
  • 相关阅读:
    cocos2d-x Mask的实现及优化
    cocos2d-x CCTableView
    cocos2d-x CCScrollView
    网络服务端开发
    跨平台web调试代理工具---whistle
    探索c#之一致性Hash详解
    Redis性能问题排查解决手册
    Redis的Aof被阻塞原因调查
    AOF 持久化策略
    如何招到一个靠谱的程序员
  • 原文地址:https://www.cnblogs.com/z-qinfeng/p/12000083.html
Copyright © 2020-2023  润新知