#include <iostream>
#include <regex>
using namespace std;
int main() {
std::string s("1234 - Text | OneWord , Multiple Words | Another Text , 456");
std::regex reg(R"((\s+-\s+|\b\s+\b)|\s+)");
std::cout << std::regex_replace(s, reg, "$1") << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmVnZXg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXN0ZDo6c3RyaW5nIHMoIjEyMzQgLSBUZXh0IHwgT25lV29yZCAsIE11bHRpcGxlIFdvcmRzIHwgQW5vdGhlciBUZXh0ICwgNDU2Iik7CglzdGQ6OnJlZ2V4IHJlZyhSIigoXHMrLVxzK3xcYlxzK1xiKXxccyspIik7CglzdGQ6OmNvdXQgPDwgc3RkOjpyZWdleF9yZXBsYWNlKHMsIHJlZywgIiQxIikgPDwgc3RkOjplbmRsOwoJCglyZXR1cm4gMDsKfQ==