DEELX 正则表达式引擎(v1.2)
DEELX 正则表达式引擎(v1.2)
简介见文末。
选择使用deelx的理由:全部代码位于一个头文件(.h)中, 比任何引擎都使用简单和方便。
利用分组从字符串当中提取出化学元素英文名。比如 Ag,Au,Fe3O4,Al2O3,K2O,CaO......
#include "deelx.h"
#include <string>
//该正则表达式识别字符串当中是否有化学元素英文名。
//特征:首字母大写,由英文字符和数字组成。
//示例:数学变换_Ag_三门峡 识别分组:数学变换_ Ag _三门峡
bool extractElement(const std::string &header, std::string &out)
{
static CRegexpT <char> regexp("([^A-Z]*)([A-Z][A-Za-z0-9]*)([^A-Za-z0-9]*)");
MatchResult result = regexp.Match(header.c_str());
int nGroup = result.MaxGroupNumber();
if (nGroup > )
{
char name[_MAX_PATH];
int start, end;
start = result.GetGroupStart();
end = result.GetGroupEnd();
strncpy_s(name, header.c_str()+start, end-start);
out = name;
}
else
out = header; return true;
}
简介:
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 是完全免费的实验室产品。
- 为弥补实验室产品的不足,本站同步推出了与本引擎完全兼容的调试工具:Match Tracer。
源代码下载:
[
下载:DEELX]
DEELX 可免费用于个人用途及商业用途。
资助 DEELX 的开发
如果 DEELX 对您有用,解决了您的问题,提高了您的效率,节约了您的时间,我们真心希望您能对 DEELX 提供一些资助:
A)您可以选择直接以现金的方式,资助到站长支付宝 sswater@gmail.com
B)您也可以通过购买 “Regex Match Tracer 去除广告” 来支持站长,点击购买
更多参考:
[
正则表达式语法] - 详细介绍 DEELX 支持的正则表达式语法。
[
编程帮助] - 编程指南,详细介绍如何将 DEELX 用于你的 C++ 项目。
[
表达式工具 Match Tracer] - 推荐使用正则表达式可视化编写及调试工具。
DEELX 正则表达式引擎(v1.2)的更多相关文章
- Python的regex模块——更强大的正则表达式引擎
Python自带了正则表达式引擎(内置的re模块),但是不支持一些高级特性,比如下面这几个: 固化分组 Atomic grouping 占有优先量词 Possessive quantifi ...
- 正则表达式引擎的构建——基于编译原理DFA(龙书第三章)——3 计算4个函数
整个引擎代码在github上,地址为:https://github.com/sun2043430/RegularExpression_Engine.git nullable, firstpos, la ...
- 正则表达式引擎:nfa的转换规则。
正则表达式引擎:nfa的转换规则. 正则到nfa 前言 在写代码的过程中,本来还想根据龙书上的说明来实现re到nfa的转换.可是写代码的时候发现,根据课本来会生成很多的无用过渡节点和空转换边,需要许多 ...
- 1000行代码徒手写正则表达式引擎【1】--JAVA中正则表达式的使用
简介: 本文是系列博客的第一篇,主要讲解和分析正则表达式规则以及JAVA中原生正则表达式引擎的使用.在后续的文章中会涉及基于NFA的正则表达式引擎内部的工作原理,并在此基础上用1000行左右的JAVA ...
- 基于ε-NFA的正则表达式引擎
正则表达式几乎每个程序员都会用到,对于这么常见的一个语言,有没有想过怎么去实现一个呢?乍一想,也许觉得困难,实际上实现一个正则表达式的引擎并没有想像中的复杂,<编译原理>一书中有一章专门讲 ...
- 【C++】正则表达式引擎学习心得
最近参照一些资料实现了一个非常简易的正则表达式引擎,支持基本的正则语法 | + * ()等. 实现思路是最基本的:正则式->AST->NFA->DFA. 以下是具体步骤: 一. 正则 ...
- (2015大作业)茹何优雅的手写正则表达式引擎(regular expression engine
貌似刚开学的时候装了个逼,和老师立了个flag说我要写个正则表达式引擎,然后学期末估计老师早就忘了这茬了,在历时3个月的懒癌发作下,终于在这学期末deadline的时候花了一个下午加晚上在没有网的房间 ...
- 实现一个正则表达式引擎in Python(一)
前言 项目地址:Regex in Python 开学摸鱼了几个礼拜,最近几天用Python造了一个正则表达式引擎的轮子,在这里记录分享一下. 实现目标 实现了所有基本语法 st = 'AS342abc ...
- 实现一个正则表达式引擎in Python(二)
项目地址:Regex in Python 在看一下之前正则的语法的 BNF 范式 group ::= ("(" expr ")")* expr ::= fact ...
随机推荐
- linux下开启防火墙,打开端口
service iptables start时提示:“iptables: No config file. [WARNING]” 此时打 ...
- win8.1蓝屏解决
按Windows 徽标键 +X键,点击“命令提示符(管理员)”,复制以下命令并运行: SFC /SCANNOW (此命令需要一段时间完成,不要关闭它,即使进度看上去停止不动.) reg add &qu ...
- Java提高篇——equals()与hashCode()方法详解
java.lang.Object类中有两个非常重要的方法: 1 2 public boolean equals(Object obj) public int hashCode() Object类是类继 ...
- 个人对AutoResetEvent和ManualResetEvent的理解(转载)
仅个人见解,不对之处请指正,谢谢. 一.作用 AutoResetEvent和ManualResetEvent可用于控制线程暂停或继续,拥有重要的三个方法:WaitOne.Set和Reset. 这三个方 ...
- SQLServer2005+附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
SQLServer2005+ 附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 我们在用Sql SQLServer2005+附加数据库文件时弹出错误信息如下图的处理办法: 方案一: ...
- Maven聚合与继承的实例讲解(一)
概述 在javaweb高速发展的今天,我们软件设计人员往往会用很多种方式对软件划分模块,目的就是为了能有清晰的设计和低耦合性的,高重用性的软件.Maven有很好的依赖管理系统(Dependency M ...
- JAVA NIO系列(四) 选择器
前面介绍过Channel.Buffer,后面的文章主要讲解Selector的实践以及实现原理,选择器的概念比起通道.缓冲区要复杂一些,并且选择器是NIO中最重要的一部分内容. 为什么使用Selecto ...
- svg学习(五)ellipse
<ellipse> 标签 <ellipse> 标签可用来创建椭圆.椭圆与圆很相似.不同之处在于椭圆有不同的 x 和 y 半径,而圆的 x 和 y 半径是相同的. <?xm ...
- FingerGestures 屏蔽NGUI的方法
在Google搜到的帖子中提到的方法 有一个地方是错误的(折腾了好久 哎) http://www.tasharen.com/forum/index.php?topic=127.0 Camera NGU ...
- OpenWrt——神奇的路由系统
鉴于最近大家对这个系统比较感兴趣而且疑问很多所以本渣就整理下我对这个系统的理解和最实用的802.1x认证的理解.还望大家多多互相交流. 如果您时间紧张直接看最后的步骤,时间充裕的请仔细阅读,理解. O ...
下载:DEELX
正则表达式语法