DEELX 正則表達式引擎

DEELX 是一個在 C++ 環境下的與 Perl 兼容的正則表達式引擎。是 RegExLab 開展的一個研究開發項目。

基本特點:
  • 支持與 Perl 兼容的正則表達式語法。
  • 支持 IGNORECASE, SINGLELINE, MULTILINE 等常見匹配模式。
  • 兼容性強,能在 vc6, vc7, vc8, gcc, Turbo C++ 等大多數 C++ 環境編譯。
  • 支持命名分組,條件表達式,遞歸表達式等多種高級特性。(1.2版本新特點)

與 GRETA、boost 相比,DEELX 獨到之處:
  • 完全使用模版庫編寫,支持 char, wchar_t, int 等以及其他基類型版本。
  • 全部代碼位於一個頭文件(.h)中, 比任何引擎都使用簡單和方便。
  • 支持從右向左匹配模式,可從文本結束位置向前搜索匹配。
  • 可防止零長度子匹配循環無限次而產生的死循環。(1.2版本新特點)

DEELX 不足之處:

DEELX 可免費用於個人用途及商業用途。


DEELX的中文幫助下載地址:http://www.regexlab.com/download/?/deelx/deelx_zh.chm

DEELX的源代碼的下載地址:http://www.regexlab.com/download/?/deelx/deelx.zip

 

個人我覺得DEELX實用性還是蠻不錯的,在此推薦給那些喜歡正則表達式的人。

 

看一個示例:

DEELX 正則引擎編程示例:判斷數字

判斷一個字符串是否全由數字組成。


表達式

/d+


方法

MatchExact


代碼

#include "deelx.h"
int test_all_number(const char * string)
{
// declare
static CRegexpT <char> regexp("//d+");
// test
    MatchResult result = regexp.MatchExact(string);
// matched or not
return result.IsMatched();
}
int main(int argc, char * argv[])
{
char * str1 = "12345";
char * str2 = "12345 abcde";
    printf("'%s' => %s/n", str1, (test_all_number(str1) ? "yes" : "no"));
    printf("'%s' => %s/n", str2, (test_all_number(str2) ? "yes" : "no"));
return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章