编译 boost 的正则表达式部分
2012-05-15 13:57
399 查看
VC利用boost库解析正则表达式 最近做数据库涉及到解析sql语句,觉得最好的办法是写正则表达式解析,由于vc6没有解析函数,自己写又不甘心,后来从网上找到了boost库,解决了这个问题. boost下载地址:http://www.boost.org 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 注意: 如果运行 vcvars32.bat时提示找不到的话,可以在VC的安装目录搜一下,找到了之后在命令行处运行一下就可以了 编写一个源程序测试一下: #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 |
相关文章推荐
- 编译 boost 的正则表达式部分
- Boost正则表达式的编译与使用方法集
- Boost_1_34_0中Regex正则表达式类库的注意事项及编译后文件
- boost正则表达式的安装和配置
- 使用正则表达式更改编译版本号
- 第十部分 字符串处理和正则表达式---------------
- 正则的部分表达式(转载)
- boost正则表达式匹配一次
- 基于boost正则表达式:对目录下所有文本文件的中文词频统计
- 正则表达式学习笔记 boost
- Boost正则表达式对AIS消息的拆分经典实例
- 正则表达式引擎的构建——基于编译原理DFA(龙书第三章)——1 概述
- Boost学习之正则表达式--regex
- 正则表达式 boost
- 使用正则表达式获取部分文本信息
- 正则表达式部分
- 正则表达式re之编译
- [Elasticsearch] 部分匹配 (二) - 通配符及正则表达式查询
- Boost之正则表达式
- iphone,关于部分正则表达式,查找出wap中的电话号码