Chcę wyszukać wszystkie liczby w ciągu: "50 12 40 12"
Pierwszy raz próbuje w praktyczny sposób użyć wyrażeń regularnych, wcześniej napisałbym po prostu funkcję, która przelatuje ciąg i sprawdza czy znak jest liczbą, jeżeli tak to zapisuje ów znak do bufora, a jeżeli nie, to pomija itd
Programik:
#include <iostream>
#include <string>
#include <regex>
int main()
{
std::string str = "50 12 40 12";
std::tr1::cmatch res;
std::tr1::regex rx("((\\d\\d)|(\\d\\d\\s))");
std::tr1::regex_search(str.c_str(), res, rx);
for (auto i = 0; i < res.size(); i++)
{
std::cout << res[i] << std::endl;
}
std::cout << res.size();
system("Pause");
return 0;
}
Jako wynik otrzymuję:
50
50
50
A chciałbym wszystkie liczby. Próbowałem już wielu sposób, to albo otrzymuję to samo, albo pusty wynik, albo samo 50.
Możecie mi podpowiedzieć co robię źle? Albo chociaż podesłać dobry artykuł, gdzie wyjaśnione są dobrze wyrażenia regularne?