打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VC利用boost库解析正则表达式
http://blog.csdn.net/jinhill/article/details/5929102
2010

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

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

[c-sharp] view plain copy
  1. #include "stdafx.h"  
  2.  
  3. #include "stdafx.h"  
  4. #include <cstdlib>  
  5. #include <stdlib.h>  
  6. #include <boost/regex.hpp>  
  7. #include <string>  
  8. #include <iostream>  
  9. using namespace std;  
  10. using namespace boost;  
  11. #if _DEBUG  
  12. #pragma comment(lib, "boost_regex-vc6-mt-sgd-1_38.lib")  
  13. #else  
  14. #pragma comment(lib, "boost_regex-vc6-mt-1_38.lib")  
  15. #endif  
  16. regex expression("^select ([a-zA-Z]*) from ([a-zA-Z]*)");  
  17. int main(int argc, char* argv[])  
  18. {  
  19.     std::string in;  
  20.     cmatch what;  
  21.     cout << "enter test string" << endl;  
  22.     getline(cin,in);  
  23.     if(regex_match(in.c_str(), what, expression))  
  24.     {  
  25.         for(int i=0;i<what.size();i++)  
  26.             cout<<"str :"<<what[i].str()<<endl;  
  27.     }  
  28.     else  
  29.     {  
  30.         cout<<"Error Input"<<endl;  
  31.     }  
  32.     return 0;  
  33. }   

  输入: select name from table
  输出: str:select name from table
     str:name
     str:table
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
vc6.0环境下编译Boost 1.34.1
vs2005下安装boost::regex 及简单的使用
boost安装总结
在VC6中使用正则表达式解析字符串
在VS2010下编译libjpeg及其应用例子
VS2010使用openssl的静态库libeay32.lib和ssleay32.lib
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服