理解std :: regex声明:运行时的regex_error异常

时间:2013-03-22 16:17:22

标签: c++ regex c++11

我有以下可执行文件。我用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”。所以这显然不是我想要的

2 个答案:

答案 0 :(得分:1)

所以答案似乎是GCC4.7 STL中的实现不完整。 谢谢大家的意见。

No matches with c++11 regex

很快谢谢你和Nathan Ernst!

答案 1 :(得分:-3)

为什么不抓住它?

#include <regex>
#include <iostream>

int main(int, char**){
    try {
        std::regex re("\\d");
    } catch(std::exception const& e) {
        std::cout << e.what() << "\n";
    }
}