转载自:http://www.jztop.com/dev/vc/a115889271629327.html
VC利用boost库解析正则表达式
[2006-09-22 10:38:11] [来源: BLOG] [我要投稿]
本文章地址:http://www.jztop.com/dev/vc/a115889271629327.html [点此复制地址]
<script language="javascript" type="text/javascript"> function copyToClipBoard(){ var clipBoardContent=''; clipBoardContent+="VC利用boost库解析正则表达式"; clipBoardContent+='http://www.jztop.com/dev/vc/a115889271629327.html'; window.clipboardData.setData("Text",clipBoardContent); alert("你已复制链接及标题,请粘贴到QQ/泡泡/MSN等发给好友!"); } </script>
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
编写一个源程序测试一下:
输入: select name from table
输出: str:select name from table
str:name
str:table
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" << 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