Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [Решено] PCRE и несколько вхождений подстроки  (Прочитано 1149 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн coyote

  • Автор темы
  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Пишу небольшой парсер на Си с использованием pcre.
Код примерно такой (проверки и т.п. опускаю):
char mimestr[]="=?UTF-8?B?bbbbbbbbbbbbb==?=   =?UTF-8?B?aaaaaaaaaaaa==?="; //строка в которой производим поиск
char pattern[]= "=\\?(\\S+)\\?(\\S)\\?(\\S+)==\\?="; // шаблон

re = pcre_compile((char*)pattern,PCRE_MULTILINE,&error,&erroffset,NULL);
count  =  pcre_exec  (re,  NULL, mimestr , strlen(mimestr), 0, 0, ovector, 30);

Надо получить тройки подстрок:
"utf-8"," b"," bbbbbbbbbbb"
"utf-8"," b"," aaaaaaaaaaa"
и т.д.
но в моем случае парсер возвращает только первую "тройку", а остальное игнорирует.
Подскажите в чем ошибка?! Подозреваю надо указать какие-то параметры, но какие?
« Последнее редактирование: 17 Августа 2008, 16:56:03 от coyote »

Оффлайн coyote

  • Автор темы
  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Re: PCRE и несколько вхождений подстроки
« Ответ #1 : 17 Августа 2008, 00:27:49 »
вопрос снимается  :)

Похоже pcre_exec необходимо вызывать в цикле указывая смещение на длину предыдущего найденного вхождения... как-то так.

 

Страница сгенерирована за 0.051 секунд. Запросов: 25.