#include <iostream>
#include <string>
#include <vector>
#include <regex>
int main() {
std::regex rx(R"(\b(?!(?:word1|word2)\b)\w+)");
std::string s = "Extract all words but word1 and word2.";
std::vector<std::string> results(std::sregex_token_iterator(s.begin(), s.end(), rx),
std::sregex_token_iterator());
for( auto & p : results ) std::cout << p << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cmVnZXg+CgppbnQgbWFpbigpIHsKCXN0ZDo6cmVnZXggcngoUiIoXGIoPyEoPzp3b3JkMXx3b3JkMilcYilcdyspIik7CglzdGQ6OnN0cmluZyBzID0gIkV4dHJhY3QgYWxsIHdvcmRzIGJ1dCB3b3JkMSBhbmQgd29yZDIuIjsKCXN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiByZXN1bHRzKHN0ZDo6c3JlZ2V4X3Rva2VuX2l0ZXJhdG9yKHMuYmVnaW4oKSwgcy5lbmQoKSwgcngpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzcmVnZXhfdG9rZW5faXRlcmF0b3IoKSk7CgkKICAgIGZvciggYXV0byAmIHAgOiByZXN1bHRzICkgc3RkOjpjb3V0IDw8IHAgPDwgc3RkOjplbmRsOwogICAgcmV0dXJuIDA7Cn0=