3

次の実行可能ファイルがあります。gcc 4.7.2(g ++ foo.cc -std = c ++ 11)でコンパイルします。

実行時に、例外regex_errorがスローされます。

私は何を間違っているのですか?

#include <regex>

int main(int, char**){
    std::regex re("\\d");
}

UPDATE例外のエラーコードはerror_escapeです。そこで「\\d」を試してみました。実行時に失敗することはありませんが、「1」とは一致しませんが、「\d」とは一致します。だからこれは明らかに私が望むものではありません

4

2 に答える 2

2

したがって、答えは、GCC4.7STLの実装が不完全であるということのようです。コメントありがとうございます。

c++11正規表現との一致はありません

すぐにありがとう、ネイサン・エルンスト!

于 2013-03-25T11:19:12.097 に答える
-3

捕まえませんか?

#include <regex>
#include <iostream>

int main(int, char**){
    try {
        std::regex re("\\d");
    } catch(std::exception const& e) {
        std::cout << e.what() << "\n";
    }
}
于 2013-03-22T16:22:05.140 に答える