Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2011, 14:49   #1
TEREMAN
Новичок
Джуниор
 
Регистрация: 08.10.2011
Сообщений: 5
По умолчанию Парсинг файла c RegExp

Здравствуйте.

Нужно распарсить файл в котором хранятся закладки. Файл этот от FireFox, резервная копия файлов. Сейчас их так много собралось, что делать вручную очень сложно. Поэтому решил написать программку которая бы достала все ссылки и названия к ним.

Слышал про RegExp, скачал модуль и хелп к нему но не могу понять как мне описать что надо выдернуть.

Сразу пытался выдернуть все при помощи PosEx/Copy но в некоторых файлах он копирует всякую ерунду. Это не моя ошибка а такое расположение строк.

Поэтому решил делать на RegExp и в это время научиться с ним работать.

Синтаксис файла такой
"value":"Episode guide to Shameless, new series on Showtime. Episode guide and episode summaryof Shameless. Watch Shameless only on Showtime. Order Showtime 866-465-SHOW"}],"type":"text/x-moz-place","uri":"http://www.sho.com/site/shameless/episodes.do?seriesid=408&seasonid=1 &episodeid=136690","charset":"IS O-8859-1"}]}

Нужно выдернуть текст после "value":" до сюда "}]," т.е. название закладки
от ","uri":" до "," ссылка закладки

Подскажите Как сделать это при помощи RegExp
TEREMAN вне форума Ответить с цитированием
Старый 08.10.2011, 15:35   #2
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

шаблон будет примерно такой
Код:
'("value":")([^"]+)["][}](.+?)("url:")([^"]+)'
P.s.
я его не проверял, писал сразу сюда, но по идеи должен работать
fate вне форума Ответить с цитированием
Старый 08.10.2011, 16:40   #3
TEREMAN
Новичок
Джуниор
 
Регистрация: 08.10.2011
Сообщений: 5
По умолчанию

не работает данный вариант.
читаю этот хелп и все равно не могу вкурить как и что.

напишите шаблон который будет выделять текст из ковычека там попробую дальше разобраться.
"value":"Episode guide to Shameless, new series on Showtime. Episode guide and episode summaryof Shameless. Watch Shameless only on Showtime. Order Showtime 866-465-SHOW"}],"
TEREMAN вне форума Ответить с цитированием
Старый 08.10.2011, 16:54   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

Формат очень похож на JSON, и как минимум с JSON'а нужно начинать а не с регулярного выражения.
Человек_Борща вне форума Ответить с цитированием
Старый 08.10.2011, 17:07   #5
TEREMAN
Новичок
Джуниор
 
Регистрация: 08.10.2011
Сообщений: 5
По умолчанию

да да. это json. В этом файле ФФ хранит резервную копию закладок называеться файд bookmarks-02-16-2011.json

Уже начал искать как что с ним делать, может пока посоветуете?
TEREMAN вне форума Ответить с цитированием
Старый 08.10.2011, 17:29   #6
TEREMAN
Новичок
Джуниор
 
Регистрация: 08.10.2011
Сообщений: 5
По умолчанию

глянул я этот json и как с ним работать , это нужно делать дерево потом как нибудь сортировать.
все же меня интересуют регулярки. в будущем они понадобяться.
напишите пожалуйста шаблон по следующей инструкции.
1. Найти начало текста в моем случае это "value":"
2. Выбрать все символы до "}]," то что описано в моем втором сообщении. буду очень признателен
ну а там дальше думаю разберусь.
TEREMAN вне форума Ответить с цитированием
Старый 08.10.2011, 21:43   #7
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

Цитата:
не работает данный вариант.
покажи код в котором ты пробуешь применить написанный мной шаблон
fate вне форума Ответить с цитированием
Старый 08.10.2011, 21:54   #8
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

Только что проверил, да я допустил опечатку вместо ("url:")
напиши ("url":")
Хотя у тебя в примере uri (i а не l на конце) если так и должно быть и это не опечатка то соответственно в шаблоне пиши ("uri":")
А в остальном шаблон работает прекрасно, проверил.
fate вне форума Ответить с цитированием
Старый 09.10.2011, 12:16   #9
TEREMAN
Новичок
Джуниор
 
Регистрация: 08.10.2011
Сообщений: 5
По умолчанию

да сейчас работает. букву L я заметил в аот ковычки пропустил.
Проверяю шаблон в утилите TestRexp, сейчас буду пробовать в delphi и рабираться дальше.
TEREMAN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с RegExp Руслантус Общие вопросы .NET 3 26.02.2011 21:01
Парсинг строки имени файла NieL Общие вопросы Delphi 3 17.12.2010 14:49
regexp в С++ Пепел Феникса Общие вопросы C/C++ 2 10.11.2010 18:26
Regexp на чистом С++ 1datr Общие вопросы C/C++ 1 05.11.2010 21:44
Парсинг INI-файла lyonmik Общие вопросы .NET 2 23.04.2008 19:21