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 ...
随机推荐
- UIBezierPath用法
前言 笔者在写本篇文章之前,也没有系统学习过贝塞尔曲线,只是曾经某一次的需求需要使用到,才临时百度看了一看而且使用最基本的功能.现在总算有时间停下来好好研究研究这个神奇而伟大的贝塞尔先生! 笔者在学习 ...
- Spark on YARN两种运行模式介绍
本文出自:Spark on YARN两种运行模式介绍http://www.aboutyun.com/thread-12294-1-1.html(出处: about云开发) 问题导读 1.Spark ...
- php日期时间函数和数学函数
<?php //第一部分:日期和时间函数 ----------------------------- time(); //int time(void),返回当前时间的时间戳 mktime(); ...
- jqzoom图片放大镜
jqzoom是一个图片放大器插件.它功能强大,使用简便! 引入js与css: <script type="text/javascript" src="js/jque ...
- Nhiberate (二) 搭项目
使用: visual studio 2015 ;SQL SERVER 2012. 参考.测试可用 其中有点不太一样的地儿, ISession 的泛型方法: 用了 QueryOver<>,转 ...
- (地址)propedit安装说明的地址
proedit http://propedit.sourceforge.jp/eclipse/updates/
- for循环和迭代
迭代的一个时间复杂度最大就是n^2,而在for循环和迭代相结合的一个情况下则是一个排序组合,不再是一个简单n^2,而是阶乘n!.
- svg学习(七)polygon
<polygon> 标签用来创建含有不少于三个边的图形. <?xml version="1.0" standalone="no"?> & ...
- js获取url参数值
用过的封装好的js获取url问号后的参数的方法: <script> var Request = new Object(); Request = GetRequest();var error ...
- OBD K线抓包
14230 Link 命令: const u8 LinkCmd14230[6] = { 0xC2, 0x33, 0xF1, 0x01, 0x00, 0xE7 }; 14230 Enter 命令: c ...