[Moscow.pm] Парсинг вот такой вот структуры

Andrei andrei.protasovitski на gmail.com
Пн Ноя 16 04:54:53 PST 2009


Примерно так:

s/ID=(?=[^}]+=[^}]+})//g;
s/=/=>/g;
s/([\]}])/$1,/g;
eval '$struct = {' . $_ . '};';

Ну, только нужно проверить, не содержат ли значения в кавычках символы
[=}\]].

16 ноября 2009 г. 13:40 пользователь Pavel <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 | http://moscow.pm.org
>



-- 
Andrei Protasovitski
< andrei[dot]protasovitski[at]gmail[dot]com >
Diemen, Netherlands
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20091116/ea82d695/attachment.html>


Подробная информация о списке рассылки Moscow-pm