2016-11-22 63 views
-3

String = "TIT2\x00\x00\x00\x12\x00\x00\x00Spicks And SpecksTRCK\x00\x00\x00\x02\x00\x00\x006TYER\x00\x00\x00\x05\x00\x00\x001992TCON\x00\x00\x00\x03\x00\x00\x0013TALB\x00\x00\x00\x19\x00\x00\x00Best Sellers Hits (CD 1)PRIV\x00\x00\x00\x00\x00WM/MediaClassPrimaryID\x00\xbc}\xd1#\xe3\xe2K\x86\xa1H\xa4*(D\x1ePRIV\x00\x00\x00)\x00\x00WM/MediaClassSecondaryID\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00PRIV\x00\x00\x00\x0e\x00\x00PeakValue\x00Dq\x00\x00PRIV\x00\x00\x00\x11\x00\x00AverageLevel\x00\xf0\x13\x00\x00TPE1\x00\x00\x00\t\x00\x00\x00Bee Gees\x00\x00\x00\x00\x00\x00\x00\x00"正则表达式解析ID3v2标签

这是ID3V2.3标签,我需要解析它通过以下方式“标签TagInfo”。 我试过这个正则表达式".+(?=[A-Z0-9]{4})"。它工作,如果我使用re.search()但它不适用于re.findall()

回答

1

试试这个

(T[A-Z0-9]{3})(.+?)(?=T[A-Z0-9]{3}|$) 

你会得到两场比赛,第一场比赛是标签,第二场比赛是两个标记之间的文本(或最后的标签和线路的末端之间)