[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