Я пытаюсь получить некоторые совпадения из файла, читая его по строкам. Мой код заключается в следующем:C++ получить совпадения от regex_iterator
std::regex e("id=\"(.+?)\"|title=\"(.+?)\"|summary=\"(.+?)\"|first=\"(.+?)\"|last=\"(.+?)\"");
std::regex_iterator<std::string::iterator> rit (line.begin(), line.end(), e);
std::regex_iterator<std::string::iterator> rend;
while (rit!=rend) {
std::cout << rit->str() << std::endl;
++rit;
}
Я попытался с помощью regex_search и smatch объекта, но он останавливается в первом матче линии. Я обнаружил, что regex_iterator выполняет задание, но он дает мне полное соответствие (например, id = «123456», а не 123456), что имеет смысл, но мне нужен только номер.
В соответствии с http://www.cplusplus.com/reference/regex/regex_iterator/operator */именованием, по которому итератор выдаст мне объект match_results, но я не знаю, как объявить его (он всегда дает мне список плохих аргументов. Как я могу заставить итератор дать мне smatch-объект ?
Последнее, что я слышал, g ++ regex пока не работает. –