vc6 支持正则表达式

时间:2022-09-12 23:18:53
 

 最新版的boost库不支持vc6, 支持vc6的最高版为1.34

故在网上下载boost_1_34_1,解压。

两种方式编译:

1. 运行

boost_1_34_1\tools\jam\src\build.bat, 生成bjam,

拷贝到boost_1_34_1,执行:

bjam --toolset=msvc  --with-regex --build-type=complete stage

这样在stage目录生成dll和lib. 后面会用到。

 

2. 运行

   cd boost_1_34_1\libs\regex\build

  vcvars32.bat 

 nmake -f vc6.mak

 同样生成dll和lib.

 

然后进行测试:

#include "stdafx.h"
#include <boost/regex.hpp>
#include <iostream>


boost::regex expression("^select ([a-zA-Z]*) from ([a-zA-Z]*)");


int main(int argc, char* argv[])
{

boost::cmatch what;
char *result;
const char buff[]="select stower from chengdu";
if(boost::regex_match(buff,what,expression))
{
int n= what.size();
for(int i=0;i<n;i++)
std::cout<<what[i].str()<<std::endl;
}
return 0;
}


编译前加入头文件路径和库文件路径,include 指定 boost_1_34_1路径,lib 指定\boost_1_34_1\stage\lib即可。