Ман: int pcre_exec(const pcre *code, const pcre_extra *extra, const char *subject, int length, int startoffset, int options, int *ovector, int ovecsize); ... ovecsize Number of elements in the vector (a multiple of 3)Почему должен быть кратен 3-м, если обработка ведется по парам (взял из примеров): count = pcre_exec (re, NULL, (char *) str, 4, 0, 0, ovector, 30); // выполнение сопоставления с образцом if (!count){ // если нет совпадений cout << "No match\n"; } else{ //вывод пар {начало, конец} совпадения for (int c = 0; c < 2 * count; c += 2){ if (ovector[c] < 0){ // или <unset> для несопоставившихся подвыражений cout << "<unset>\n"; } else{ cout << ovector[c] << "/" << ovector[c + 1] << "\n"; } } }
|