0

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

例如,如果我将下面的字符串包含在“blah”中,我该如何对其运行多重提取正则表达式并将每个数值传递到数组中。我对正则表达式很好,而不是 C++ 语法。

std::string 等等 = "5001 | 5002 | 5003";

谢谢

4

1 回答 1

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将字符串转换为整数。

于 2013-08-21T18:09:11.877 回答