我必须从c ++中的字符串中提取多个值。我可以在python中做到这一点,但不幸的是,这必须在c ++中完成。
例如,如果我在'blah'中包含下面的字符串,我如何对它运行多重提取正则表达式并将每个数值传递给数组。 我对正则表达式很好,只是没有c ++语法。
std :: string blah =“5001 | 5002 | 5003”;
谢谢
答案 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
将字符串转换为整数。