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;
}

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