作者:朱金灿
来源: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。