Welcome

首页 / 软件开发 / C++ / boost库解析正则表达式

boost库解析正则表达式2007-05-25按下面的代码敲就行了:

cmd
vcvars32.bat
cd D:oost_1_32_0libs egexuild
d:
nmake -fvc6.mak
nmake -fvc6.mak install

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

在VC6中集成:Tools->Options->Directories->Include files

加入:D:oost_1_32_0

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

 

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

using namespace std;
using namespace boost;

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

int main(int argc, char* argv[])
{
std::string in;
cmatch what;
cout << "enter test string" << endl;
getline(cin,in);
if(regex_match(in.c_str(), what, expression))
{
for(int i=0;i<what.size();i++)
cout<<"str :"<<what[i].str()<<endl;
}
else
{
cout<<"Error Input"<<endl;
}
return 0;
}

输入: select name from table
输出: str:select name from table
str:name
str:table