C ++中的regex_error,表达非常简单

时间:2015-03-23 17:36:13

标签: c++ regex

我有一组像紫罗兰+ 2,橙色-3等类似的字符串。这是一种命名颜色的方法。我希望使用这段代码获得正则表达式的颜色,操作和数字:

int parseColor(string color){
smatch sm;
int ret = -1;
    if (regex_match(color,sm,regex("(.*)([+-])(.*)")))
        ret = s_colors[sm[1].str()]+s_colors[sm[2].str()]*atoi(sm[3].str().c_str());

return ret;
}

其中s_colors是一个地图,它将每种颜色与整数值匹配,+, - 符号为+1和-1。

我也试过用\\ +和\\来标记+ - 符号 - 但它也不起作用。每次我跑,我得到regex_error。在ruby中尝试这个似乎有效......我不确定正则表达式的错误是什么。

1 个答案:

答案 0 :(得分:4)

Gcc 4.8.2不支持正则表达式。你需要4.9