根据括号,使用std :: regex进行字符串拆分

时间:2020-07-09 09:46:30

标签: c++ regex string split

我正在尝试基于多个分隔符来拆分字符串。我实际上有一个工作代码

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中编写它们时,它们将被解释为新正则表达式的开始,并且不起作用。怎么做?

0 个答案:

没有答案