程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> C++ boost正則表達式用法

C++ boost正則表達式用法

編輯:vc教程

什麼是正則表達式?正則表達式是一種用來描述一定數量文本的模式。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_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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved