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]\ncodec_type=audio111\n[/STREAM]--\n[STREAM]\ncodec_type=audio2222\n[/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

 

posted @ 2018-01-17 19:21  马贡多在下雨  阅读(334)  评论(0)    收藏  举报