0

C++ 内の文字列から複数の値を抽出する必要があります。私はこれをPythonでうまく行うことができますが、残念なことに、これはc ++で行う必要があります。

たとえば、以下の文字列が「何とか」に含まれている場合、それに対して複数の抽出正規表現を実行し、各数値を配列に渡すにはどうすればよいですか。C ++構文ではなく、正規表現で問題ありません。

std::string blah = "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 に答える