以多个字符中的任意一个分割(is_any_of),直接上代码:
#include <boost/algorithm/string.hpp>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
using namespace boost;
int main()
{
string str1("hello abc-*-ABC-*-aBc goodbye");
vector<string> SplitVec;
// is_any_of 表示其中任何一个 字符 都可以作为分隔符, - 或者 *
// token_compress_on 表示去掉字符串两端分割出来的空的token,默认是token_compress_off
split(SplitVec, str1, is_any_of("-*"), token_compress_on)
return 0;
}
如果分隔符不是字符而是字符串或者多个字符,则:
#include <boost/regex.hpp>
#include <boost/algorithm/string/regex.hpp>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
using namespace boost;
int main()
{
string s = "one->two->thirty-four";
vector <string> fields;
split_regex( fields, s, regex( "->" ) );
return 0;
}
// 编译的时候记得加上libboost_regex:
// target_link_libraries(xxx boost_regex)