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