轻量级正则表达式解析器

2024-03-19

我想使用正则表达式解析器来帮助 C 应用程序中的一些字符串处理。我理想地寻找轻量级和开源的东西。目标平台是嵌入式系统,因此我们希望尽可能节省内存消耗。我在网上找到了许多选项,但想知道是否有人可以提出可能在这种特定情况下有所帮助的其他建议。

非常感谢,


闪烁体 http://www.scintilla.org/,一个开源文本编辑器组件,使用Ozan S. Yigit 的 RE 发动机 http://www.cs.yorku.ca/~oz/

选择它是因为它属于公共领域(因此没有阻碍许可证)并且非常轻量级。但它有点有限......就其价值而言,使用稍微更现代的代码(转换为 C++,但将其转换回 C 应该不会很复杂)以及我自己制作的一些小扩展(支持 \d \s \w 等)。

有一些替代方案,例如Henry Spencer 的正则表达式库 http://www.arglist.com/regex/.

想一想,Lua http://www.lua.org/正则表达式引擎(在字符串库、gsub 实现等中)可能又快又小,就像语言本身一样。它有其怪癖和局限性,但非常有用。

副业项目LPeg http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html可以成为 RE 的一个有趣的替代品,仍然轻量级但功能强大。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

轻量级正则表达式解析器 的相关文章

  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 正则表达式 - 从 markdown 字符串中提取所有标题

    我在用灰质 https www npmjs com package gray matter 以便将文件系统中的 MD 文件解析为字符串 解析器产生的结果是这样的字符串 n Clean er ReactJS Code Conditional
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • JSF 页面未呈现为 HTML

    我正在尝试运行一个非常基本的 JSF 页面 使用 Websphere 7 0 作为服务器 因此我尝试坚持使用 JSF 1 2 浏览器不渲染 html 我的意思是它只是显示所有 html 代码 包括 doctype 等 我的第一个猜测可能是它
  • Codeigniter 分页链接转到 404 Page Not Found

    我有这个与搜索结果分页 http www andyhawthorne co uk how to paginate search results with codeigniter 实施到我的 CI 项目中 但是我无法让我的分页链接转到下一页
  • 什么时候适合使用CacheItemRemovedCallback?

    我有一个每天更新一次的大型数据集 我正在缓存对该数据进行昂贵查询的结果 但我想每天更新该缓存 我正在考虑使用 CacheItemRemovedCallback 每天重新加载我的缓存 但我有以下问题 是不是可以在我过期之前调用 CacheIt
  • Android 中的噪音消除是如何工作的?

    我碰到this http www talk3g co uk showthread php 7655 Google Nexus One Noise Cancellation Microphone win相对较旧的帖子 描述了 Nexus On
  • Django TestCase 测试顺序

    如果测试类中有多个方法 我发现执行顺序是按字母顺序排列的 但我想自定义执行顺序 如何定义执行顺序 例如 testTestA 将先于 testTestB 加载 class Test TestCase def setUp self def te
  • Python:在一行中拆分、剥离和连接

    我很好奇它们是否是某种蟒蛇魔法 我可能不知道能完成一些无聊的事情 给定行 csvData append join line split strip for x in L 我正在尝试分割一条线 修剪它周围的空白 然后加入 问题是 因为数组是从
  • 关于龙的可怕代码注释是什么?

    这句话被用来警告代码正在做一些严重的特技 我对此的谷歌搜索是空的 但我记得很久以前有人在谷歌上搜索过这个短语 谎言中的龙 龙睡在这里 Bah 这里是龙 http en wikipedia org wiki Here be dragons 最
  • 使用 google API、jQuery 从地理编码中提取 + 4 邮政编码

    我正在 jQuery 的帮助下使用谷歌 API 进行地理编码 以下是我尝试过的代码 jQuery document ready function var geocoder new google maps Geocoder jQuery Ad
  • 在“功能”选项卡上添加背景模式

    我使用的是 Xcode 6 3 我刚刚在功能选项卡上添加了蓝牙背景模式 需要执行一个步骤 即 将 所需的背景模式 键添加到您的 info plist 文件中 然而苹果文档 https developer apple com library
  • BeautifulSoup soup.prettify() 给出奇怪的输出

    我正在尝试解析一个网站 稍后我将在我的 Django 项目中使用它 为此 我使用 urllib2 和 BeautifulSoup4 然而 我却没能得到我想要的 BeautifulSoup 对象的输出很奇怪 我尝试了不同的页面 它有效 输出正
  • 在 Scala 2.10 中获取 java.lang.Class[T] 的 Scala 类型

    我在看scala 反射概述 http docs scala lang org overviews reflection overview html我想知道是否可以使用java lang Class
  • Python numpy 减法没有负数(4-6 给出 254)

    我想减去2gray人脸彼此之间可以看到差异 但我遇到了一个问题 例如减去 4 6 给出 254 而不是 2 或差值 2 print type face
  • 检查 JQuery 中的单选按钮

    我需要以编程方式检查单选按钮的值 该表格有一个id并且输入类型显然有一个名称 但没有 id 到目前为止 我成功运行的唯一代码是 input name my name eq 1 attr checked checked 但我希望能够通过明确提
  • 多个resque工作模式创建额外的进程

    我需要启动 4 个 resque 工作人员 所以我使用了以下命令 bundle exec rake environment resque workers RAILS ENV production COUNT 4 QUEUE VERBOSE
  • Python 中的调用是如何工作的? [复制]

    这个问题在这里已经有答案了 对于我正在开发的一个项目 我正在实现一个链表数据结构 它基于对的概念 我将其定义为 class Pair def init self name prefs score self name name self sc
  • d3.js 中的地理图表

    我正在寻找一些指导或示例如何在 d3 js 中制作地理图表 我需要类似的东西this one https developers google com chart interactive docs gallery geochart在谷歌图表中
  • ESB 应该如何打包/部署?

    我正在尝试了解 Apache Camel 它似乎是一个轻量级的 ESB 如果我正确理解 Camel ESB 那么您可以将 Camel Route 视为节点和边的图 每个节点都是路由上的端点 可以消耗 产生消息 每条边都是两个不同端点 1 个
  • 为什么模态/非模态对话框称为模态/非模态?

    我总是很难记住模态对话框还是非模态对话框是否会阻止应用程序其他部分的操作 有谁知道为什么这样称呼他们 使用模式对话框 您可以将应用程序设置为特定的mode 如果您愿意 可以选择不同的 状态 仅接受与该 模式 相关的操作 从而防止对话框之外的
  • 读取文件时 Bash 用户提示

    我试图在 Bash 中逐行读取文件时创建用户提示 我的想法是使用 Gnuplot 逐一绘制各种文件 这是我所拥有的 bin bash echo Enter filename that contains the filenames read
  • 轻量级正则表达式解析器

    我想使用正则表达式解析器来帮助 C 应用程序中的一些字符串处理 我理想地寻找轻量级和开源的东西 目标平台是嵌入式系统 因此我们希望尽可能节省内存消耗 我在网上找到了许多选项 但想知道是否有人可以提出可能在这种特定情况下有所帮助的其他建议 非