#include <string>
#include <iostream>
#include <regex>
using namespace std;
int main() {
std::vector<std::string> strings;
std::string s = "word1; word2 ; word31 word32";
std::regex re(R"(\s*;\s*)");
std::regex_token_iterator<std::string::iterator> it(s.begin(), s.end(), re, -1);
decltype(it) end{};
while (it != end){
strings.push_back(*it++);
}
for (auto& s: strings){ //std::cout << strings[strings.size()-1] << std::endl;
std::cout << "'" << s << "'" << std::endl;
}
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmVnZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzdHJpbmdzOwoJc3RkOjpzdHJpbmcgcyA9ICJ3b3JkMTsgd29yZDIgIDsgd29yZDMxIHdvcmQzMiI7CglzdGQ6OnJlZ2V4IHJlKFIiKFxzKjtccyopIik7CglzdGQ6OnJlZ2V4X3Rva2VuX2l0ZXJhdG9yPHN0ZDo6c3RyaW5nOjppdGVyYXRvcj4gaXQocy5iZWdpbigpLCBzLmVuZCgpLCByZSwgLTEpOwoJZGVjbHR5cGUoaXQpIGVuZHt9OwoJd2hpbGUgKGl0ICE9IGVuZCl7CgkJc3RyaW5ncy5wdXNoX2JhY2soKml0KyspOwoJfQoJZm9yIChhdXRvJiBzOiBzdHJpbmdzKXsgLy9zdGQ6OmNvdXQgPDwgc3RyaW5nc1tzdHJpbmdzLnNpemUoKS0xXSA8PCBzdGQ6OmVuZGw7CgkJc3RkOjpjb3V0IDw8ICInIiA8PCBzIDw8ICInIiA8PCBzdGQ6OmVuZGw7Cgl9CglyZXR1cm4gMDsKfQo=