У меня есть строка "SolutionAN ANANANA SolutionBN"
Я хочу вернуть всю строку, которая начинается с Solution
и заканчивается N
.Boost C++ regex - как вернуть все совпадения
При использовании regex boost::regex regex("Solu(.*)N");
Я получаю вывод как SolutionAN ANANANA SolutionBN
.
Хотя хочу выйти SolutionAN
и SolutionBN
. Я новичок в regex в boost, любая помощь будет оценена. Отрывок если код, я использую
#include <boost/regex.hpp>
#include <iostream>
int main(int ac,char* av[])
{
std::string strTotal("SolutionAN ANANANA SolutionBN");
boost::regex regex("Solu(.*)N");
boost::sregex_token_iterator iter(strTotal.begin(), strTotal.end(), regex, 0);
boost::sregex_token_iterator end;
for(; iter != end; ++iter) {
std::cout<<*iter<<std::endl;
}
}
Большого спасибо, у меня есть один дополнительное сомнение в регулярных выражениях предположит, у меня есть вход SolutionAN ANANANA SolutionBN а а Solution. Я хочу, чтобы все строки, которые начинаются с Солом и в конце, где рядом Солу начать работу, например Input: SolutionAN ANANANA SolutionBN а а Решение Выход: 3 разных строк SolutionAN ANANANA SolutionBN а а Solution –