C ++正则表达式在第一个空格后分​​割

时间:2016-12-03 23:25:30

标签: c++ regex

我有一个字符串如下:

{ <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 &regex, 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);
}

0 个答案:

没有答案