C++/Boost在多个字符上拆分字符串

daj*_*daj 4 c++ string parsing boost tokenize

一旦我看到一个例子,这可能非常简单,但是我如何推广boost :: tokenizer或boost :: split来处理由多个字符组成的分隔符?

例如,使用" _ _",这些标准拆分解决方案似乎都不起作用:

boost::tokenizer<boost::escaped_list_separator<string> > 
        tk(myString, boost::escaped_list_separator<string>("", "____", "\""));
std::vector<string> result;
for (string tmpString : tk) {
    result.push_back(tmpString);
}
Run Code Online (Sandbox Code Playgroud)

要么

boost::split(result, myString, "___");
Run Code Online (Sandbox Code Playgroud)

小智 9

boost::algorithm::split_regex( result, myString, regex( "___" ) ) ;
Run Code Online (Sandbox Code Playgroud)

  • @Kadiam 尝试:#include &lt;boost/algorithm/string_regex.hpp&gt; (2认同)