PCRE

PCRE

PCRE(Perl Compatible Regular Expressions)是一個Perl庫,包括 perl 兼容的正則表達式庫。這些在執行正規表達式模式匹配時用與Perl 5同樣的語法和語義是很有用的。Boost太龐大了,使用boost regex后,程序的編譯速度明顯變慢。測試了一下,同樣一個程序,使用boost::regex編譯時需要3秒,而使用pcre不到1秒。因此改用pcre來解決C語言中使用正則表達式的問題

簡介


PCRE(Perl Compatible Regular Expressions中文含義:perl語言兼容正則表達式)是一個用C語言編寫的正則表達式函數庫,由菲利普。海澤(Philip Hazel)編寫。PCRE是一個輕量級的函數庫,比Boost之類的正則表達式庫小得多。PCRE十分易用,同時功能也很強大,性能超過了POSIX正則表達式庫和一些經典的正則表達式庫。
和Boost正則表達式庫的比較顯示,雙方的性能相差無幾,PCRE在匹配簡單字元串時更快,Boost則在匹配較長字元串時勝出---但兩者差距很小,考慮到PCRE的大小和易用性,我們可以認為PCRE更值得考慮。
PCRE被廣泛使用在許多開源軟體之中,最著名的莫過於Apache HTTP伺服器和PHP腳本語言、R腳本語言,此外,正如從其名字所能看到的,PCRE也是perl語言的預設正則庫。
PCRE是用C語言實現的,其C++實現版本是PCRE++。
PCRE最新的版本是8.33,可以在其官方網站下載,官網地址見擴展閱讀部分。

安裝與使用


PCRE的安裝及使用
1、主頁地址:www pcre org
下載pcre-7.8 tar bz2
2、解壓縮:
tar xjpf pcre-7.8 tar bz2
3、配置:
cd pcre-7.8
./configure --prefix=/usr/local/pcre-7.8 --libdir=/usr/local/lib/pcre --includedir=/usr/local/include/pcre
configure有許多參數可配,具體參見./configure --help及手冊
4、編譯:
make
5、安裝:
make install
6、檢查:
ls /usr/local 檢查是否有pcre-7.8目錄
ls /usr/local/lib 檢查是否有pcre目錄
ls /usr/local/include 檢查是否有pcre目錄
7、將庫文件導入cache:
方法1:在/etc/ld.so.conf中加入: /usr/local/lib/pcre,然後運行ldconfig
方法2:在/etc/ld.so.conf.d/下新生成一個文件(或在其中的文件中加入同樣內容),文件內容為:
/usr/local/lib/pcre,然後運行ldconfig
8、使用:
使用pcre編寫C或C++程序,然後編譯。
對於C程序,編譯命令為:gcc -I/usr/local/include/pcre -L/usr/local/lib/pcre -lpcre file.c
對於C++程序,編譯命令為:g++ -I/usr/local/include/pcre -L/usr/local/lib/pcre -lpcrecpp file.cpp
也可用apt直接安裝:
apt-cache search pcre 查找pcre
下面只安裝pcrecpp
apt-get install libpcre++-dev 安裝pcrecpp開發文件
apt-get install libpcre++0 安裝pcrecpp庫文件