fork download
  1. #include <iostream>
  2. #include <regex>
  3.  
  4. using namespace std;
  5.  
  6. auto LoadFileToString(istream& stream) -> std::string
  7. {
  8. stream.seekg(0, ios_base::end);
  9. auto len = stream.tellg();
  10. stream.seekg(0);
  11.  
  12. auto result = std::string(len + 1, '\0');
  13. stream.read(&result[0], len);
  14. return result;
  15. }
  16.  
  17. int main() {
  18. auto s = LoadFileToString(cin);
  19.  
  20. regex e(R"regexp(Nazwa:\s+(\w+|\w+\s+\w+)\s+Rodzaj:\s+(\w+|\w+\s+\w+)\s+Waga:\s+(\d+|\d+\.\d+)\s\[kg\]\s+Cena:\s(\d+|\d+\.\d+)\szl\.\s+Kolor:\s(\w+)\s+)regexp");
  21.  
  22. smatch m;
  23. while (regex_search(s, m, e))
  24. {
  25. cout << m[1] << " " << m[2] << " " << m[3] << " " << m[4] << " " << m[5] << endl;
  26. s = m.suffix().str();
  27. }
  28. return 0;
  29. }
Success #stdin #stdout 0s 16168KB
stdin
 Nazwa: jablko
Rodzaj: owoc
Waga: 10 [kg]
Cena: 3.5 zl.
Kolor: zielony
Nazwa: banani
Rodzaj: owoc
Waga: 14 [kg]
Cena: 4 zl.
Kolor: zolty
stdout
jablko owoc 10 3.5 zielony
banani owoc 14 4 zolty