//按字符分割,可以为多个分割符同时分割,例如 split(str, "\",[]{})
vector<string> split(string str, string pattern){
vector<string> ret;
if (pattern.empty()) return ret;
size_t start = 0, index = str.find_first_of(pattern, 0);
while (index != str.npos){
if (start != index)
ret.push_back(str.substr(start, index - start));
start = index + 1;
index = str.find_first_of(pattern, start);
}
if (!str.substr(start).empty())
ret.push_back(str.substr(start));
return ret;
}
//按子串分割,将pattern作为一个整体
vector<string> split2(string str, string pattern){
vector<string> ret;
if (pattern.empty()) return ret;
size_t start = 0, index = str.find(pattern, 0);
while (index != str.npos){
if (start != index)
ret.push_back(str.substr(start, index - start));
start = index + pattern.size();
index = str.find(pattern, start);
}
if (!str.substr(start).empty())
ret.push_back(str.substr(start));
return ret;
}