VC使用DEELX正则引擎-DLL方式

本文介绍了如何在VC环境下使用DEELX,一个Perl兼容的正则表达式引擎,通过DLL方式进行文本匹配。DEELX具有简单易用的接口,支持多种高级特性,如命名分组和条件表达式。文章展示了如何加载DLL,获取函数指针并执行正则表达式匹配。
摘要由CSDN通过智能技术生成

DEELX 是一个在 C++ 环境下的与 Perl 兼容的正则表达式引擎。是 RegExLab 开展的一个研究开发项目。相比于GRETA很Boost来说是一个接口相对简单易用的正在引擎。其基本特点:


支持与 Perl 兼容的正则表达式语法。
支持 IGNORECASE, SINGLELINE, MULTILINE 等常见匹配模式。
兼容性强,能在 vc6, vc7, vc8, gcc, Turbo C++ 等大多数 C++ 环境编译。
支持命名分组,条件表达式,递归表达式等多种高级特性。(1.2版本新特点)

 

与 GRETA、boost 相比,DEELX 独到之处:


完全使用模版库编写,支持 char, wchar_t, int 等以及其他基类型版本。
全部代码位于一个头文件(.h)中, 比任何引擎都使用简单和方便。
支持从右向左匹配模式,可从文本结束位置向前搜索匹配。
可防止零长度子匹配循环无限次而产生的死循环。(1.2版本新特点)

 

这是RegExLab的说法。我们使用还是要根据自己的项目要求合理选择。后续将会做一个GRETA Demo,可做一些对比。DEELX本身只是由一个头文件构成,全是模板,里面实现了一个内部的内存管理模块,感兴趣的可以自己阅读。使用DLL需要一个头文件,DEELX也进行了封装。我们先看看头文件的内容。

 

 

首先定义一些标志位,默认是0。例如SINGLELINE,MULTLINE定义了单行和多行匹配。

 

 

封装一下DLL导出导入关键字,DLL源文件中使用的是__declspec(dllexport)。使用此DLL的源文件中应该使用__declspec(dllixport)。通过开关宏LIBDEELX_EXPORTS区分。

 

其后又用宏LOAD_DEELX_RUNTIME来区分是运行时或非运行时,运行时声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值