[Moscow.pm] Парсинг вот такой вот структуры
Vany Serezhkin
ivan на serezhkin.com
Пн Ноя 16 07:58:01 PST 2009
Привет.
Я кстати недавно столкнулся с подобным, надо парсить луашные дампы.
Думал сделать парротовскую грамматику, а потом что то как то взял,
изучил за пару часов луа и написал
lua2perl.lua =) и сисопеном его прожовываю.
Конечно не хайтек, но ... зато работает и глюков нет.
зы, эти дампы похожи на луа.
Andrei пишет:
> Примерно так:
>
> s/ID=(?=[^}]+=[^}]+})//g;
> s/=/=>/g;
> s/([\]}])/$1,/g;
> eval '$struct = {' . $_ . '};';
>
> Ну, только нужно проверить, не содержат ли значения в кавычках символы
> [=}\]].
>
> 16 ноября 2009 г. 13:40 пользователь Pavel <brosku на mail.ru
> <mailto:brosku на mail.ru>> написал:
>
> Приветствую, коллеги!
> Столкнулся с одной задачкой, но прежде чем изобретать велосипед,
> хотел бы обратиться к сообществу.
> Есть сервер отвечающий на запросы вот таким вот текстом (между тире):
> ---------------------------------------
> TYPE1=[
> { ID=One NAME="Один айди" }
> { ID=Two NAME="Айди номер два" }
> { ID=Some NAME="Еще что-то" }
> { ID=Yeah NAME="Вот так вот" }
> ]
> TYPE2=[
> ]
> ----------------------------------------
> Задача состоит в том чтобы спарсить подобные ответы в структуры
> perl (хэши,
> массивы, ...) (ответы могут различаться по структуре, иметь вложенные
> массивы данных, и т.п.)
> В принципе всевозможные комбинации конечны, и можно написать n-ное
> кол-во
> регэкспов которые будут парсить
> этот вывод, но возможно есть какие-то решения наподобие модулей
> Config::Any::INI, которые позволяют обрабатывать подобные структуры и
> получать на выходе структуры perl?
> Спасибо.
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org <mailto:moscow-pm на pm.org> | http://moscow.pm.org
>
>
>
>
> --
> Andrei Protasovitski
> < andrei[dot]protasovitski[at]gmail[dot]com >
> Diemen, Netherlands
> ------------------------------------------------------------------------
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
Подробная информация о списке рассылки Moscow-pm