贪婪匹配
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.*?)\[/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]
"""