Я пытаюсь прочитать следующую структуру (python):
a1a:bb2b,c3cc,dd44d;e5eee:ff66,g7;h8h:i9
(без пробелов между ними!), Чтобы в идеале вывести что-то вроде
((a1a, (bb2b, c3cc, dd44d)),
(e5eee, (ff66, g7)),
(h8h, (i9)))
Со словами: 1 или более групп.Каждая группа с одной головой, за которой следуют ":" и один или несколько элементов, разделенных ",".Группы разделены знаком ";".Каждый элемент буквенно-цифровой, включая "_".
Я попробовал следующее регулярное выражение (благодаря вкладу четвертой птицы (?:; | $)):
(\w+):(?:(\w+)|(?:,(\w+)(?=,))|(?:,(\w+)))+(?:;|$)
какпоказано здесь
Это дает такой результат:
((a1a, bb2b, c3cc, dd44d),
(e5eee, ff66, g7),
(h8h, i9))
Это лучше, чем ничего, но пока не точный формат вывода, как было запрошено.
Есть ли у кого-нибудьидея, как настроить регулярное выражение, чтобы получить точно желаемый результат?Боюсь, что вообще невозможно получить вложенные группы, такие как (bb2b, c3cc, dd44d), как это было бы в (a1a, (bb2b, c3cc, dd44d)), не так ли?
Заранее спасибо за любой намек.mdew