VC利用boost库解析正则表达式

chanai 2012-07-06

boost库安装比较麻烦,需要自己编译源文件,我整理了一下,如果仅仅需要做正则表达式,按下面的代码敲就行了:

cmd

vcvars32.bat

cdD:\boost_1_32_0\libs\regex\build

d:

nmake-fvc6.mak

nmake-fvc6.makinstall

注意,别看下载下来的数据包没有多大,解压缩之后达到了100多M,编译完之后为109M,占用131M,所以安装时一定注意空出足够的空间,敲入nmake-fvc6.mak后等待的时间比较长,屏幕上还会出现一大堆英语,可以不做考虑.按照步骤往下敲就行了.压缩包内文档很详细,参照文档继续就可以了.

在VC6中集成:Tools->Options->Directories->Includefiles

加入:D:\boost_1_32_0

编写一个源程序测试一下:

#include"stdafx.h"#include"stdafx.h"#include#include#include#include#includeusingnamespacestd;usingnamespaceboost;#if_DEBUG#pragmacomment(lib,"boost_regex-vc6-mt-sgd-1_38.lib")#else#pragmacomment(lib,"boost_regex-vc6-mt-1_38.lib")#endifregexexpression("^select([a-zA-Z]*)from([a-zA-Z]*)");intmain(intargc,char*argv[]){std::stringin;cmatchwhat;cout<<"enterteststring"<<endl;getline(cin,in);if(regex_match(in.c_str(),what,expression)){for(inti=0;i<what.size();i++)cout<<"str:"<<what[i].str()<<endl;}else{cout<<"ErrorInput"<<endl;}return0;}

输入:selectnamefromtable

输出:str:selectnamefromtable

str:name

str:table

相关推荐