Я борюсь с python named group re
У меня есть следующая строка: "blah blah id=xyz, blah blah foo bar=zxy] blah baz=a}"
завершающие символы: ,]}
, и я хотел бы получить named dict используя шаблон регулярного выражения, который выглядит следующим образом:
{'id': 'xyz', 'foo bar': 'zxy', 'baz': 'a'}
группы должны быть необязательными
Мне удалось использовать его без именованных групп и включая символы завершения, но я уверен, что есть способ, как сделайте это полностью в регулярном выражении и будьте более элегантными ... это просто ускользает от меня, любая помощь будет приветствоваться
мое текущее решение использует следующее предварительное совпадение:
(id=.* ?[, }\]] |baz=.* ?[, }\]] |foo bar=.* ?[, }\]])
он работает, но требует значительной постобработки (разделение строк и чередование)
for i in ae2:
key, value = i.split('=', 1)
altevent2[key] = value.strip('},] ')
Кроме того, было бы здорово избавиться от пробелов / непечатаемых символов, но только когда они находятся в начале / конце значения
если это вообще возможно, постобработка не требуется - мне нужна большая производительность
Edit1: список, если dict 'IDs' известен заранее, в этом случае это будет 'id', ' foo bar ',' baz '