Mam taki kod:
#include <iostream> #include <string> #include <regex> using namespace std; int main() { string tekst; regex wzorzec("(\\w*\\d+)\\s(\\d+-\\d+)\\s(\\w*)"); regex wzorzec2("\\w*\\d+)\\s(\\w*)\\s(\\d+-\\d+)"); // regex wzorzec3("(\\w*)\\s(\\w*\\d+)\\s(\\d+-\\d+)"); // regex wzorzec4("(\\w*)\\s(\\d+-\\d+)\\s(\\w*\\d+)"); // regex wzorzec5("(\\d+-\\d+)\\s(\\w*)\\s(\\w*\\d+)"); // regex wzorzec6("(\\d+-\\d+)\\s(\\w*\\d+)\\s(\\w*)"); for(int i=0;i<10;i++){ getline(cin,tekst); smatch wynik; if(regex_search(tekst, wynik, wzorzec)){ //string temp=wynik[1]; // std::string::size_type sz; // float temp2 = std::stof (wynik[1],&sz); cout << "Ulica: "<< wynik[1] <<endl; cout << "Kod: "<< wynik[2] <<endl; cout << "Miasto: "<< wynik[3] <<endl; // cout << "Numer: "<< temp2 <<endl; } if(regex_search(tekst, wynik, wzorzec2)){ cout << "Ulica: "<< wynik[1] <<endl; cout << "Kod: "<< wynik[3] <<endl; cout << "Miasto: "<< wynik[2] <<endl; } //else // cout<<"Niepoprawny adres"<<endl; } }
I teraz w tym momencie we wzorcu mam ustawioną ulicę jako (\\w*\\d+) - jak teraz przy wypisaniu tego podwzorca wyciągnąć tylko cyfry? Czyli w konsoli podaje adres np. Nowatorska 6 i chcę z tego podwzorca wyciągnąć 6 - jest to możliwe?: jak?