正则表达式和C ++ 11,软件还是编译错误?

时间:2013-10-15 21:51:55

标签: c++ regex gcc c++11 g++

我正在尝试使用正则表达式在C ++中创建一个复杂的软件......现在我正在做一些测试,但是我遇到了运行时错误。我在Ubuntu 12.04 64bit上尝试了gcc 4.7,最新的CodeBlocks包含了编译器(我认为是GG 4.7的MinGW移植)。正则表达式是正确的,因为我在这个网站http://gskinner.com/RegExr/上尝试并正常工作。他们需要认识和补充。这是软件:

#include <iostream>
#include <string>
#include <regex>
using namespace std;

string stringa;

int main()
{
        cin >> stringa;
        if (regex_match(stringa, regex("^[0-9]*\\+[0-9]*$", regex::ECMAScript))) //need to insert \\ to prevent escape sequence
        {
                cout << "Addition" << endl;
        }
        else
        {
                cout << "Not addition" << endl;
        }
        return 0;
}

当我运行它时,在插入输入后,我收到该错误:

terminate called after throwing an instance of 'std::regex_error'
what(): regex_error     Annullato (core dump creato)

问题是我的代码还是编译器?

0 个答案:

没有答案