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/

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

原文地址:https://www.cnblogs.com/standby/p/8305084.html