zoukankan      html  css  js  c++  java
  • Python正则的贪婪和非贪婪示例

    贪婪匹配

    import re
    
    info = """
    saas12
    [STREAM]
    codec_type=audio111
    [/STREAM]--
    [STREAM]
    codec_type=audio2222
    [/STREAM]
    asas
    """
    
    patten = r"[STREAM].*[/STREAM]"
    print re.findall(patten,info,re.S)
    
    ###### 结果 ######
    
    ['[STREAM]
    codec_type=audio111
    [/STREAM]--
    [STREAM]
    codec_type=audio2222
    [/STREAM]']
    

      

    非贪婪匹配

    import re
    
    info = """
    saas12
    [STREAM]
    codec_type=audio111
    [/STREAM]--
    [STREAM]
    codec_type=audio2222
    [/STREAM]
    asas
    """
    
    patten = r"[STREAM](?P<standby>.*?)[/STREAM]"
    res = re.finditer(patten,info,re.S)
    # print res.next().group()
    # print res.next().groupdict().get('standby',None)
    for item in res:
        print item.groupdict().get('standby',None).strip()
    
    ###### 结果 ######
    codec_type=audio111 codec_type=audio2222

      

    问题:有如下文本,请匹配出每一个【stream】块的 codec_type 和 extradata_base64 值

    info = """
    [STREAM]
    codec_type=audio111
    extradata_base64=EhA=
    [/STREAM]
    [STREAM]
    codec_type=audio2222
    extradata_base64=EhA=222222
    [/STREAM]
    """
    

      

    参考:https://docs.python.org/2/library/re.html

    作者:Standby一生热爱名山大川、草原沙漠,还有妹子
    出处:http://www.cnblogs.com/standby/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    如何重写Java中的equals方法
    如何阅读论文
    新的开始
    react父组件调用子组件方法
    关于 webpack 的研究
    浅析HTTP代理原理
    Maven POM详解
    项目实战
    项目实战-Gulp使用
    AngularJS 项目开发实战
  • 原文地址:https://www.cnblogs.com/standby/p/8305084.html
Copyright © 2011-2022 走看看