Я использую tr1::regex, чтобы попытаться извлечь некоторые совпадения из строки. Пример строки может быть
asdf werq "one two three" asdf
И я хотел бы выйти из этого:
asdf
werq
one two three
asdf
С материалами в кавычках, сгруппированными вместе, поэтому я пытаюсь использовать регулярное выражение \"(.+?)\"|([^\\s]+)
. Код, который я использую:
cmatch res;
regex reg("\"(.+?)\"|([^\\s]+)", regex_constants::icase);
regex_search("asdf werq \"one two three\" asdf", res, reg);
cout << res.size() << endl;
for (unsigned int i = 0; i < res.size(); ++k) {
cout << res[i] << endl;
}
но это выводит
3
asdf
asdf
Что я делаю не так?