Здравствуйте!
Пишу на с++ в codebloks возникла задача распарсить текст вот по такому выражению /\w+.\/\/\w+\d+\.\w+\.\w+\/\w+-.+\.\w Использую библиотеку pcre
Вот как пишу:
char regx[] = "/\w+.\/\/\w+\d+\.\w+\.\w+\/\w+-.+\.\w";
pcre *re;
int options = 0;
const char *error;
int erroffset;
re = pcre_compile (regx, options, &error, &erroffset, NULL);
count = pcre_exec (re, NULL, buffer.c_str(),buffer.length(), 0, 0, ovector, 30); //buffer - это и есть переменная с текстом
if (count< 0)
{
switch(count)
{
case PCRE_ERROR_NOMATCH:
cout << "Нет совпадений" << endl;
return -1;
default:
cout << "Ошибка : " <<count <<endl;
return -1;
}
free(re);
return 1;
}
else
{
for (int c = 0; c < 2 * count; c += 2)
{
if (ovector[c] < 0)
{
cout << "\n";
}
else
{
cout << ovector[c] << "/" << ovector[c + 1] << "\n";
}
}
}
Выдает постоянно что нет совпадений но вроде выражение правильное , может что-то в коде не так или выражение надо как то по другому записать ?