数値データを含むテキストファイルを解析しようとしています。私はC++正規表現にマッチする全行
129.3 72.7 121.6 173.6 203.3 120.7 40.5 79.2 94.0 123.2 165.8 178.8 135.5 78.5 66.2
が、ラインの長さは異なるように見えるラインがたくさんあります。各行の前にはいくつかのスペースもあります。 正規表現を使って行を解析し、各番号を後で操作できる配列に配置したいと思います。
std::getline(is, line);
std::tr1::regex rx("[0-9-\.]+");
std::tr1::cmatch res;
std::tr1::regex_search(line.c_str(), res, rx);
を使用する最初の番号と一致します。代わりに、私は、このような
"^[0-9-\.]+$"
"^[0-9-\.]+"
としてラインアンカーを使用している場合、私は試合何を取得しないと
"[0-9-\.]+$"
は、ちょうど最後の番号と一致します。だから私はおそらく何か間違っている。助けてくれてありがとう。
resは配列です。つまり、res [1]、res [2]、res [3] ...は一致する必要があります。あなたはそれをチェックしたのですか? –
regexpは本当に最適な解決策ではありません。単に浮動小数点演算子>>を使用するほうがずっと使いやすく、はるかに適しています。 – PlasmaHH
私はPlasmaHHに同意しますが、誰かが理由を知っていますが、誰かが正規表現を使ってプレイしたいと思っています... –