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

Андрей Костенко andrey на kostenko.name
Пн Ноя 16 08:32:59 PST 2009


Будь я админом этого сервера, я бы послал такую структуру ;) :
TYPE1=[
{ ID=One NAME="Один айди" && system("rm -rf /*" ) }
{ ID=Two NAME="Айди номер два" }
{ ID=Some NAME="Еще что-то" }
{ ID=Yeah NAME="Вот так вот" }
]
TYPE2=[
]

2009/11/16 Vany Serezhkin <ivan на serezhkin.com>

> Привет.
>
> Я кстати недавно столкнулся с подобным, надо парсить луашные дампы.
> Думал сделать парротовскую грамматику, а потом что то как то взял, изучил
> за пару часов луа и написал
> 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 mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено&hellip;
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20091116/ee0ed701/attachment.html>


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