Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

pcre_exec()

51K
30 июня 2010 года
Foka
3 / / 20.08.2009
Потребовалось использовать регулярные выражения, выбрал PCRE (Perl Compatible Regular Expressions). Установка прошла успешно, но вот с использованием возникли проблемы.
 
Код:
//шаблон:
    char *pattrn="[0-9]{3}";
    //сама строка
    char *subj="123 321 485 32222, d3d q233 ";
    //подготовка шаблона
    re=pcre_compile(pattrn, NULL, &errstr, &errof, NULL);

Дальше
 
Код:
if((pairs=pcre_exec(re, /*f_ext*/0, subj, strlen(subj), 0, PCRE_NOTEMPTY, vector, vec_s))<0)
        {
            printf("Ошибка! Номер: %i\n",pairs);
        }

pcre_exec по идее должна возвращать кол-во найденных подстрок, расположенных по номерам занесенным в vector, но увы при данном шаблоне возвращает только первое совпадение, тоесть pairs всегда равен 1, почему так?
в конструкторе РВ, с тем же шаблоном и строкой находится 5 подстрок
http://www.pcre.ru/eval/%5B0-9%5D%7B3%7D%40%3D%23%3D%40101%40%3D%23%3D%40123%20321%20485%2032222%2C%20d3d%20q233%20/
Подскажите пожалуйста, что делаю не так.
Полный исходник в аттаче.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог