2016-11-22 70 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}|$) 

你會得到兩場比賽,第一場比賽是標籤,第二場比賽是兩個標記之間的文本(或最後的標籤和線路的末端之間)