#include <string>
#include <iostream>
#include <algorithm>
#include <regex>
#include <vector>
std::regex operator ""_re (char const* const str, std::size_t) {
return std::regex{str};
}
std::vector<std::string> split(const std::string& text, const std::regex& re) {
const std::vector<std::string> parts(
std::sregex_token_iterator(text.begin(), text.end(), re, -1),
std::sregex_token_iterator());
return parts;
}
int main() {
const std::vector<std::string> parts = split("Quick brown fox.", "\\s+"_re);
std::copy(parts.begin(), parts.end(),
std::ostream_iterator<std::string>(std::cout, "\n"));
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8cmVnZXg+CiNpbmNsdWRlIDx2ZWN0b3I+CgpzdGQ6OnJlZ2V4IG9wZXJhdG9yICIiX3JlIChjaGFyIGNvbnN0KiBjb25zdCBzdHIsIHN0ZDo6c2l6ZV90KSB7CiAgICByZXR1cm4gc3RkOjpyZWdleHtzdHJ9Owp9CgpzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gc3BsaXQoY29uc3Qgc3RkOjpzdHJpbmcmIHRleHQsIGNvbnN0IHN0ZDo6cmVnZXgmIHJlKSB7Cgljb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gcGFydHMoCgkJc3RkOjpzcmVnZXhfdG9rZW5faXRlcmF0b3IodGV4dC5iZWdpbigpLCB0ZXh0LmVuZCgpLCByZSwgLTEpLAogICAgICAgIHN0ZDo6c3JlZ2V4X3Rva2VuX2l0ZXJhdG9yKCkpOwogICAgcmV0dXJuIHBhcnRzOwp9CgppbnQgbWFpbigpIHsKCWNvbnN0IHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBwYXJ0cyA9IHNwbGl0KCJRdWljayBicm93biBmb3guIiwgIlxccysiX3JlKTsKCXN0ZDo6Y29weShwYXJ0cy5iZWdpbigpLCBwYXJ0cy5lbmQoKSwKICAgICAgICAgICAgICBzdGQ6Om9zdHJlYW1faXRlcmF0b3I8c3RkOjpzdHJpbmc+KHN0ZDo6Y291dCwgIlxuIikpOwogICAgcmV0dXJuIDA7Cn0=