c++正则表达式老是初始化错误,用的gcc4.8

#include
#include
#include
using namespace std;

bool isNumeric(char* string)
{
std::string str;
if(string==NULL) return false;
while((*string)!='\0'){
str+=*string;
string++;
}

regex reg1("^[\\+-]?[0-9]+(\\.([0-9]+))?([Ee][\\+-]?[0-9]+)?$");
return regex_match(str,reg1);

}

int main(){
char string[20]="3.14";
cout<< isNumeric(string)<<endl;
return 0;
}图片说明

4个回答

gcc 4.8不支持std::regex。

升级gcc至4.9以上版本或者换用boost.regex.

KeKe12345678909
XuCoC 谢谢!
3 年多之前 回复

4.8里面对regex应该还没有支持,用5.0以上

。。。。。。运行结果是:1

KeKe12345678909
XuCoC VS2015是运行过去了,好像真的是gcc版本问题
3 年多之前 回复

gcc早期版本regex没有具体实现,后来才逐步加入。vs的话2013,2015逐步支持的比较好了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐