我有一个字符串如下:
{ <object> waves ; big yellow flowers ; slugs ; }
我需要提出一个正确的正则表达式,在第一个空格后分割它,之后只用分号,这样在矢量中,它看起来如下:
s.at(0) = <object>
s.at(1) = waves
s.at(2) = big yellow flowers
s.at(3) = slugs
我最接近的只是用分号分隔,但<object>
和wave最终被读作一行。
编辑:这是我正在使用的分割功能
vector<string> split(const string &input, const string ®ex, bool delim = true) {
std::regex re(regex);
std::sregex_token_iterator first, last;
if (delim) {
first = sregex_token_iterator{input.begin(), input.end(), re};
} else {
// the -1 removes the delimiter
first = sregex_token_iterator{input.begin(), input.end(), re, -1};
}
return vector<string>(first, last);
}