Форум сайта python.su
Доброго времени суток!
У меня вопрос к людям разбирающимся в регулярках.
Задача следующая: имеется строка следующего содержания a:18:{s:8:“services”;a:2:{s:14:“service_domain”;a:1:{s:15:“1.ru”;a:1:{i:1;s:1:“1”;}}s:15:“service_hosting”;a:1: {s:3:“vip”;a:1:{i:1;s:2:“12”;}}} и т.д. Необходимо распарсить эту строку т.е. выделить все типы сервисов, какие именно сервисы предоставляются. Как я понимаю задача сводится к построению многоуровневого регулярного выражения. Может у кого-нибудь есть примеры работы с вложенными блоками (скобками) или знаете где можно примерчики посмотреть?
Офлайн
Если вложенности не статические, самими регулярками это не сделаешь. Надо рекурсию писать.
Офлайн
FerromanНет, не статические. Просто читал что в NET вложенность в регулярках реализована, думал и в питоне есть что-то подобное
Если вложенности не статические, самими регулярками это не сделаешь. Надо рекурсию писать.
Офлайн
Cтрока чудовищно похожа на работу функции serialize() из PHP :)
Наверно то, что тебе нужно http://hurring.com/scott/code/python/serialize/
Офлайн
Используйте грамматику. Пакеты PLY или pyparsing.
Офлайн
dimabestТак оно и есть :) спасибо за ссылку
Cтрока чудовищно похожа на работу функции serialize() из PHP :)
Наверно то, что тебе нужно http://hurring.com/scott/code/python/serialize/
Отредактировано (Ноя. 29, 2009 17:27:55)
Офлайн
Вообще считается, что для рекуррентных выражений регулярные выражения не подходят, хотя иногда распарсить выражения можно, но это только запутывает.
Офлайн