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 ...
随机推荐
- java API 知识:截取特殊标识之前的字符串
一: double a = 23.36; String b = String.valueOf(a); String d = b.substring(, b.lastIndexOf(".&qu ...
- 深入Python(4):深拷贝和浅拷贝
一.前奏:熟悉Python内存管理 在Python中,变量在第一次赋值时自动声明,在创建---也就是赋值的时候,解释器会根据语法和右侧的操作数来决定新对象的类型. 引用计数器:一个内部跟踪变量 引用计 ...
- Oracle的Connect By理解
connect by中的条件就表示了父子之间的连接关系 比如 connect by id=prior pid,但如果connect by中的条件没有表示记录之间的父子关系那会出现什么情况? 常见的,c ...
- 系统隐式 Intent
1. 找出系统中所有视频 private void choiceFile() { Intent intent = new Intent(Intent.ACTION_PICK, android.prov ...
- storm kafka整合
public class KafkaTopo { public static void main(String[] args) { String zkRoot = "/kafka-storm ...
- Map的简单语法
package jaxpsax; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; i ...
- broadcom代码中httpd进程启动流程介绍
Broadcom代码中包含WEB配置管理媒介, 在嵌入式WEB服务器min_httpd基础上改造实现, 其bin名称为httpd,此httpd可以由管理进程有连接后动态启动,并且当一段时间内没有连接到 ...
- js onmouseleave
onmouseleave no propagation onmouseout will propagation
- 列间距column-gap
column-gap主要用来设置列与列之间的间距,其语法规则如下: column-gap: normal || <length> 取值说明 属性值 属性值说明 normal 默认值,默值为 ...
- 使用uiautomator做UI测试
转载~~~~~~~~~~~~~~~~~~~~~~~~ 若有侵权,请及时联系本博主,博主将第一时间撤销 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautoma ...