關於pcre正規表示式庫libpcre

2022-07-17 20:00:15 字數 1213 閱讀 2031

gcc 4.8中已經包含了std regex的標頭檔案

可是沒有實現,所以鏈結是失敗的

gcc 4.9完整的支援了c++ 11的regex。

在4.9以前,可以尋求boost的regex。

不過,我更熟悉pcre,基於perl的正規表示式的實現。

將庫配置為交叉編譯,只生成靜態庫,配置pcre**如下:

#!/bin/sh

export rootdir="$"

cd pcre-8.36/export cross_compile="

arm-linux-androideabi

"export ar=$-ar

export as=$-as

export ld=$-ld

export ranlib=$-ranlib

export cc=$-gcc

export cxx=$-g++export nm=$-nm

./configure --prefix=$/build/pcre --target=$ --host=$ --build=i686-linux --disable-shared

執行make && make install 編譯生成目標檔案

接下來我們開始使用libpcre庫

列舉所有匹配的項,並將結果列印出來,**如下:

1 #include "

pcre.h

"2 #include

3 #include 4 #include 5

6int main(void)7

34 offset = ovector[1

];35}36

37pcre_free(re);

38}

3940

for(size_t i = 0; i < sfinds.size(); ++i)

41 std::cout << "*"

<"* "

;42 std::cout <4344

return0;

45 }

編譯執行regex,輸出結果為:

find count: 1

find count: 1

find count: 1

find count: 1

*saturday=6* *sunday=7* *fridays=5* *joke=102*

PCRE 正規表示式

define pcre static 靜態庫編譯選項 include include include define oveccount 30 should be a multiple of 3 define ebuflen 128 define buflen 1024 int main rc pcr...

PCRE正規表示式語法

字元描述 將下乙個 字元標記為乙個特殊字元,或乙個原義字元,或向後引用,或乙個八進位制轉義符。例如,n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置,如果設定了regexp物件的multiline屬性,也匹配 n 或 r 之後的位置 匹配輸入字串的結束位置。如果設定了regexp物...

windos下編譯正規表示式庫pcre

最近寫東西用到正規表示式到網上找了一大圈沒有發現好的,因為我用的是c 而且不想用atl。最終發現c寫的pcre挺好而且權威,php和python都用的它。言歸正轉下面說一下windows下編譯pcre的步驟 然後點 3.請注意這一條很重要哦,編譯靜態庫的時候要加預編譯pcre static巨集。接著...