<b>C++ boost正则表达式用法</b>[VC/C++编程]
本文“<b>C++ boost正则表达式用法</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
什么是正则表达式?正则表达式是一种用来描写一定数目文本的情势.Regex代表Regular Express.
假如您不知道什么是正则表达式,请看这篇文章:深化浅出之正则表达式
有了正则表达式的底子,问题是若何利用.我们以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库安装对比麻烦,需求自己编译源文件,我整理了一下,假如仅仅需求做正则表达式,按下面的代码敲就行了:
cmd
vcvars32.bat
cd D:boost_1_32_0libsregexbuild
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:Programboost_1_34_1
bjam "-sTOOLS=vc-7_1" "-sVC71_ROOT=D:Program FilesMicrosoft Visual Studio .NET 2003Vc7" "——prefix=E:Programboost" "——builddir=E:Programboost_1_34_1build" "-sBUILD=debug release <runtime-link>static/dynamic" ——with-regex install
PAUSE
以上是“<b>C++ boost正则表达式用法</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |