贪婪匹配
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] """