我有一组像紫罗兰+ 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中尝试这个似乎有效......我不确定正则表达式的错误是什么。
答案 0 :(得分:4)
Gcc 4.8.2不支持正则表达式。你需要4.9