正規表現を使用して C++ で複雑なソフトウェアを作成しようとしています...今、いくつかのテストを行っていますが、実行時エラーが発生しました。Ubuntu 12.04 64bit で gcc 4.7 を試し、最新の CodeBlocks にコンパイラを含めました (gcc 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)
問題は私のコードですか、それともコンパイラですか?