[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 было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20091116/ee0ed701/attachment.html>
Подробная информация о списке рассылки Moscow-pm