c ++对数组的多个正则表达式提取

时间:2013-08-21 16:24:50

标签: c++

我必须从c ++中的字符串中提取多个值。我可以在python中做到这一点,但不幸的是,这必须在c ++中完成。

例如,如果我在'blah'中包含下面的字符串,我如何对它运行多重提取正则表达式并将每个数值传递给数组。 我对正则表达式很好,只是没有c ++语法。

std :: string blah =“5001 | 5002 | 5003”;

谢谢

1 个答案:

答案 0 :(得分:1)

从C ++ 11开始,正则表达式是C ++标准库的一部分。或者,您可以使用 boost-regex 。除命名空间外,API几乎相同。你可以这样:

auto blah = std::string{"5001 | 5002 | 5003"};
auto values = std::vector<std::string>{
    std::sregex_token_iterator{blah.begin(), blah.end(), std::regex{R"(\d+)"}},
    std::sregex_token_iterator{}};

如果您需要int而不是std::string,请使用std::stoi将字符串转换为整数。