Дана строка с двумя числами с плавающей точкой, нужно распарсить строку и достать оттуда оба числа. Решил обратиться к регулярным выражениям.
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main()
{
string s = "";
getline(cin, s);
regex rexp("([0-9]+[.][0-9]+)");
smatch match;
if(regex_search(s, match, rexp))
{
cout << "ms: " << match.size() << endl;
for(int i = 0; i < match.size(); i++)
cout << i << ". " << match[i] << endl;
cout << "Pr: " << match.prefix() << endl;
cout << "Suf: " << match.suffix() << endl;
}
else cout << endl << "nope" << endl;
return 0;
}
Но находит почему-то только одну группу. Почему?