精品主页 | 软件下载 | 系统下载 | 精品导航| 精彩图片 | 转帖工具 | 版主申请 | 影视下载
发新话题
打印

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

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

  


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



  cmd

  vcvars32.bat

  cd D:\boost_1_32_0\libs\regex\build

  d:

  nmake -fvc6.mak

  nmake -fvc6.mak install



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



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



  加入:D:\boost_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[/img] getline(cin,in);

 if(regex_match(in.c_str(), what, expression))

 {

  for(int i=0;i<what.size();i  )

   cout<<"str :"<<what.str()<<endl;

 }

 else

 {

  cout<<"Error Input"<<endl;

 }

 return 0;

}

  输入: select name from table

  输出: str:select name from table

     str:name

     str:table

TOP

发新话题