当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

C++ boost 正则表达式用法

    什么是正则表达式?正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express.

    如果您不知道什么是正则表达式,请看这篇文章http://blog.csdn.net/begtostudy/archive/2007/11/11/1879206.aspx

    有了正则表达式的基础,问题是如何使用。我们以boost::regex来说

    先看一个网上经典的例子。

 #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库,也需要单独编译regex.

    如果你不知道boost库,看这里http://www.stlchina.org/twiki/bin/view.pl/Main/BoostStartIntroduce

    网上的介绍:

    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

    我用的是VS2003做了run.bat

    chdir E:\Program\boost_1_34_1

    bjam "-sTOOLS=vc-7_1" "-sVC71_ROOT=D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7"  "——prefix=E:\Program\boost" "——builddir=E:\Program\boost_1_34_1\build" "-sBUILD=debug release <runtime-link>static/dynamic" ——with-regex install

    PAUSE

    至于参数,需要参考boost安装介绍http://blog.csdn.net/begtostudy/archive/2007/11/11/1879213.aspx

共5页 首页 上一页 1 2 3 4 5 下一页 尾页 跳转到
相关内容
赞助商链接