^(-{0,1}|\+{0,1})[0-9]+(\.{0,1}[0-9]+)$ 表达式不能匹配0?

bool floatyan(char *str1)
{
char *p;
p= "^(-{0,1}|+{0,1})[0-9]+(.{0,1}[0-9]+)$";
CRegexpT reg( p,IGNORECASE );
MatchResult match_ret = reg.Match( str1) ;
if (!(match_ret.IsMatched()))
{
cout<<"不匹配!"<<endl;
return false;
}
return true;
}
int main()
{
floatyan("0");
return 0;
}

这是我的源代码,,结果是不匹配,,请大神们帮忙改一下让它可以匹配0!!

不仅不能匹配到0,连单个的数字如1,2,3,-1,-2,-3等也不能匹配到,,,求大神们帮忙改一下,,万分感谢!!!!

 (\-|\+){0,1}\d+(\.\d+){0,1}

放在C++里面\要写成\\

你要匹配什么呢?发出来看看

楼主,直接百度下 regexBuddy 软件,然后自己在里面调,各种语言正则自己在慢慢调试就ok了