我正在尝试基于多个分隔符来拆分字符串。我实际上有一个工作代码
void StringHelper::split(std::string text, std::string delimeter, std::vector<std::string> &result){
std::regex re(delimeter);
std::sregex_token_iterator first{text.begin(), text.end(), re, -1}, last; std::vector<std::string> tokens{first, last};
result = tokens;
}
int main(){
std::string s = "cardict['merco'].delete()\nif(a != 0):\n";
std::vector<std::string> words;
StringHelper::split(s, "[()'. ]", words);
for(auto& w : words){
std::cout << w << std::endl;
}
return 0;
}
问题是我也想使用方括号[]作为分隔符,但是当我在re中编写它们时,它们将被解释为新正则表达式的开始,并且不起作用。怎么做?