C++標準缺少正則的良好支援,需要自己安裝庫,比較流行的庫有GNU Regex Library、Boost.Regex、PCRE、GRETA,對這些庫的介紹網上很多,可以參考點擊開啟連結;這些庫的效能比較,我認為沒有絕對的優劣,可以參考點擊開啟連結
我個人選擇使用已經順手的perl相容的“PCRE”,但其為C編寫,使用不方便,好在有人為其包了C++的interface,即PCRE++。但windows-VS-C++環境下pcre && pcre++的編譯和使用,網上資料很少且瑣碎且不work--,在一天各種折騰後,終於使用PCRE++成功了,下面說明方法:
第一步,參看點擊開啟連結,編譯pcre成功
第二步,下載pcre++,建立一個VS空項目,然後將libpcre++ 下的標頭檔、cc檔案匯入到工程(註:按第一步配置好工程)。如果產生靜態庫,則配置類型選lib,可成功編譯及使用;如果產生dll,可參考點擊開啟連結
註:
可能會報setlocale的錯,將std::改為::即可
第三步,以上編譯成功,使用pcre++時,#include <pcre++.h>,using namespace pcrepp,並在“連結-附加依賴項”匯入pcred.lib、pcrepp.lib (可選:pcrecppd.lib、前置處理器定義PCRE_STATIC)
PS:VS2008以上已有tr1庫的正則支援,其基於boost正則庫,但不相容perl。
C++標準缺少正則的良好支援,需要自己安裝庫,比較流行的庫有GNU Regex Library、Boost.Regex、PCRE、GRETA,對這些庫的介紹網上很多,可以參考點擊開啟連結;這些庫的效能比較,我認為沒有絕對的優劣,可以參考點擊開啟連結
我個人選擇使用已經順手的perl相容的“PCRE”,但其為C編寫,使用不方便,好在有人為其包了C++的interface,即PCRE++。但windows-VS-C++環境下pcre && pcre++的編譯和使用,網上資料很少且瑣碎且不work--,在一天各種折騰後,終於使用PCRE++成功了,下面說明方法:
第一步,參看點擊開啟連結,編譯pcre成功
第二步,下載pcre++,建立一個VS空項目,然後將libpcre++ 下的標頭檔、cc檔案匯入到工程(註:按第一步配置好工程)。如果產生靜態庫,則配置類型選lib,可成功編譯及使用;如果產生dll,可參考點擊開啟連結
註:
可能會報setlocale的錯,將std::改為::即可
第三步,以上編譯成功,使用pcre++時,#include <pcre++.h>,using namespace pcrepp,並在“連結-附加依賴項”匯入pcred.lib、pcrepp.lib (可選:pcrecppd.lib、前置處理器定義PCRE_STATIC)
PS:VS2008以上已有tr1庫的正則支援,其基於boost正則庫,但不相容perl。