Здравствуйте!
Использую библиотеку prce вот так:
#include <iostream>
#include <pcre.h>
using namespace std;
int main(int argc, char* argv[]) {
string buffer="000";
char regx_get_urls[] = "."; /* шаблон */
const char** result_url = NULL; /* для функции pcre_get_substring_list */
pcre *f; /* переменная для хранения преобразованного шаблона */
pcre_extra *f_ext; /* переменная для хранения дополнительных данных */
const char *errbuffer; /* буфер для сообщения об ошибке */
int errchar; /* номер символа */
int vector[1000]; /* массив для результатов */
int vecsize=1000; /* размер массива */
int pairs; /* количество найденных пар */
int i;
for (int u=0; u<=1000; u++)
vector[u]=0;
cout<<"Шаблон - "<<regx_get_urls<<endl;
if((f=pcre_compile(regx_get_urls,PCRE_MULTILINE|PCRE_CASELESS/*|PCRE_UTF8*/,&errbuffer,&errchar,NULL))==NULL) {
cout<<"Ошибка: "<<errbuffer<<errchar<<regx_get_urls;
} else {
f_ext=pcre_study(f,0,&errbuffer);
if((pairs=pcre_exec(f,f_ext,buffer.c_str(),buffer.length(),0,PCRE_NOTEMPTY,vector,vecsize))<0) {
cout<<"Ошибка! Номер: \n"<<pairs;
} else {
if(pcre_get_substring_list(buffer.c_str(),vector,pairs,&result_url)<0)
cout<<"Ошибка pcre_get_substring_list!";
else {
cout<<"Найденно строк : "<<pairs<<endl;
for(i=0; i<pairs; i++)
cout<<i<<" : "<<result_url[i]<<endl;
pcre_free_substring_list(result_url);
}
}
}
return 0;
}
Выводит вот что:
Шаблон - .
Найденно строк : 1
0 : 0
А должно находить 3 строки!
Вопрос как сделать так чтоб находило 3 строки?