C++で正規表現を使ってみようと思いregexを触っています。
一つの文章があり、それに対して二つの正規表現を使おうとしています。
例えば、"1+2x3-4/5="という計算式があったとして、
乗算・除算と加算・減算の二つに分けて、
正規表現を使って計算式の演算記号をマッチするか、みて見るとします。
この場合変数とか定義する部分のプログラムを以下のように書くとします。
c++
1 2#include <iostream> 3#include <string> 4#include <regex> 5 6using namespace std; 7 8int main() 9{ 10 string fomula = "1+22x3-40/5="; 11 12 regex pattern_1(R"((\d+)(x|/)(\d+))"); 13 regex pattern_2(R"((\d+)(+|-)(\d+))"); 14}
こうした時に、コンパイルは通ります。
しかし、正規表現が1つ(pattern_1のみ)の場合はそのまま実行できるのですが、
正規表現を2つ(pattern_1とpattern_2)使おうとした場合に以下のようなエラーが出ます。
libc++abi.dylib: terminating with uncaught exception of type std::__1::regex_error: One of *?+{ was not preceded by a valid regular expression.
原因がまったくわかりません。
正規表現は2つ以上は使えないのでしょうか??
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/22 09:38
2017/02/22 09:44
2017/02/22 09:49
2017/02/22 10:40
2017/02/22 11:00