編譯 boost 的正規表示式部分

2021-06-06 11:44:19 字數 1036 閱讀 5062

vc利用boost庫解析正規表示式

最近做 資料庫涉及到解析

sql語句,覺得最好的辦法是寫正規表示式解析,由於vc6沒有解析函式,自己寫又不甘心,後來從網上找到了boost庫,解決了這個問題.

boost庫安裝比較麻煩,需要自己編譯原始檔,我整理了一下,如果僅僅需要做正規表示式,按下面的**敲就行了.

cmdvcvars32.bat

cd d:\boost_1_32_0\libs\regex\build

d:nmake -fvc6.mak

nmake -fvc6.mak install

在vc6中整合:tools->options->directories->include files

加入:d:\boost_1_32_0

注意:如果執行 vcvars32.bat時提示找不到的話,可以在vc的安裝目錄搜一下,找到了之後在命令列處執行一下就可以了

編寫乙個源程式測試一下:

#include "stdafx.h"

#include

#include

#include

#include

#include

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輸入: select name from table

輸出: str:select name from table

str:name

str:table

boost 正規表示式 regex

如果在引用boost regex出現連線錯誤,但是引用其他的庫卻沒有這個錯誤,這是因為對於boost來說,是免編譯的,但是,正則這個庫 是需要單獨編譯和使用的。簡單的辦法就是 直接將boost庫全部編譯,然後 找到正則的lib,編譯時候引用進去。include include include inc...

部分正規表示式

d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d d 0 0 非正浮點數 負浮點數 ...

正規表示式部分

正規表示式是用來匹配字串的強有力 在正規表示式中,如果直接給出字元,就是精確匹配。用 d可以匹配乙個數字,w可以匹配乙個字母或者數字。要匹配變長的字元,用?表示0個或1個字元,用表示n個字元,用表示n m個字元,等等。要更精確的匹配,可以用表示範圍,比如 a b 可以匹配a或b,表示行的開頭,d 表...