我正在尝试使用正则表达式在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)
问题是我的代码还是编译器?