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