2016-11-22 2 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"Regex для разбора ID3v2 Tag

Это ID3v2.3 тег, и мне нужно, чтобы разобрать его следующим образом "Tag TagInfo". Я пробовал это регулярное выражение ".+(?=[A-Z0-9]{4})". Он работает, если я использую re.search(), но он не работает для re.findall().

ответ

1

Попробуйте один

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

Вы получите два матча, первый матч тег, то второй матч текст между двумя тегами (или между последним тегом и в конце строки)

Смежные вопросы