VS2008的C++TR1库已经支持正则表达式

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

        发现VS2008的C++ TR1库已经支持正则表达式了(注意装了VS 2008sp1采用TR1库的)。下面简单做个测试,用它来判断一个字符串是否为一个数字:

#include <string> 
#include <regex>

// 检查一个字符串是否为十进制数字
void CheckString()
{
	std::string str1[3];
	bool b[3];
	std::tr1::regex p("-?\\d+\\.?\\d+");
	str1[0] = "-0.2255";
	str1[1] = "0xcadf";
	str1[2] = "123123.-123";
	b[0] = std::tr1::regex_match(str1[0],p);
	b[1] = std::tr1::regex_match(str1[1],p);
	b[2] = std::tr1::regex_match(str1[2],p);

	for (int i=0;i<3;i++)
	{
		if (b[i])
			std::cout<<str1[i]<<" is a decimal!"<<endl;
		else
			std::cout<<str1[i]<<" is not a decimal!"<<endl;
	}
}

int main(int argc, char* argv[])  
{  
   CheckString();
   system("PAUSE");  
   return 0;  
}   

        编译环境为:Win XP+sp3,VS2008 + sp1。这里是对TR1库的一个完整说明:C++ Technical Report 1

posted on 2014-06-15 10:20  岚之山  阅读(430)  评论(0编辑  收藏  举报

导航