调车场算法能解析POSIX正则表达式吗?

2023-12-31

乍一看,调车场算法 http://en.wikipedia.org/wiki/Shunting_yard_algorithm似乎适用于 POSIX 正则表达式解析,但由于我在编写解析器方面没有太多经验(或理论背景),所以我想在跳入并编写一些东西只是半途而废之前先问一下。

也许这个问题的一个更复杂的版本是:调车场算法可以应用于的问题类别的良好正式表述是什么?

澄清:这个问题是关于是否可以利用分流算法的基本原理将POSIX re语法解析成抽象语法树,而不是是否可以使用正则表达式来实现分流算法。抱歉,我一开始就没有说清楚!


我相当确定它可以。如果你看一下 Henry Spencer 的正则表达式包:

正则表达式.shar.Z ftp://ftp.cs.toronto.edu/pub/regexp.shar.Z

这是 Perl 正则表达式的基础,您会注意到他将该程序描述为“铁路范式”。

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

调车场算法能解析POSIX正则表达式吗? 的相关文章

  • “包含字符串”的快速索引

    在我的应用程序中 我有多达数百万个短字符串 大部分短于 32 个字符 我想实现一个带有附加列表的搜索框 该列表仅包含包含在搜索框中输入的整个字符串的元素 如何预先建立索引来快速找到此类字符串 所有排序的 STL 容器都会检查整个字符串 对于
  • Javascript 正则表达式来匹配正则表达式

    我正在研究一个特殊的正则表达式来匹配 javascript 正则表达式 现在我有这个正则表达式工作 i g m 例如 foo match i g m gt foo foo undefined foo i match i g m gt foo
  • 是否有一种算法可以在线性时间内计算数组反转?

    我知道有多少倒转 en wikipedia org wiki Inversion 28discrete mathematics 29 in an n 元素数组可以在 O n log n 操作使用增强型归并排序 http www geeksf
  • ASP.NET MVC 路由 - 向路由添加 .html 扩展名

    我对 MVC 和路由非常陌生 我被要求修改一个应用程序以使用不同的 url 由于我没有经验 这项任务对我来说有点困难 好吧 让我们谈谈一些代码 routes MapRoute CategoryBySeName Route name prod
  • Visual Studio Code 调试默认 ASP.NET Core MVC WebApp:不起作用

    我正在使用 Manjaro linux 并尝试调试默认的 ASP NET Core MVC 项目 但调试停止 没有任何错误 我创建了该项目 dotnet new mvc in a Meow文件夹 没什么特别的 然后添加了新的配置 NET C
  • 文件名的正则表达式模式

    如果文件名符合以下条件 用户可以将文件放入服务器 它必须以 abc 开头 然后是一个点和一个数字 Valid file names abc 2344 abc 111 Invalid abcd 11 abc ab12 正则表达式是什么 我不能
  • 只读有运行时开销吗?

    出于某种原因 我一直认为readonly字段有与其相关的开销 我认为这是 CLR 跟踪是否存在readonly字段是否已初始化 这里的开销是一些额外的内存使用量 用于跟踪状态以及分配值时的检查 也许我这么认为是因为我不知道readonly字
  • 带有自定义鉴别器的 EntityFramework Code First 继承

    我正在尝试在 EntityFramework Code First 中映射以下继承 public class Member public string ProjectName get set public string AssemblyNa
  • 如何解决内存碎片

    我们偶尔会遇到这样的问题 长时间运行的服务器进程 在 Windows Server 2003 上运行 由于内存分配失败而引发异常 我们怀疑这些分配由于内存碎片而失败 因此 我们一直在寻找一些可能对我们有帮助的替代内存分配机制 我希望有人能告
  • EWS - 给予预约,获取预约的所有者副本

    在 EWS 中进行预约后 是否可以获得所有者的副本 例如 如果我登录为user1 我有user1创建的约会的副本user2 我有冒充权 我要编辑user2预约的副本 我怎样才能获得user2 s copy 您可以使用 PidLidClean
  • 什么是“朴素”算法,什么是“封闭式”解决方案?

    我有一些关于描述算法时使用的术语语义的问题 首先 朴素 算法是什么意思 这与给定问题的其他解决方案有何不同 解决方案还可以采取哪些其他形式 其次 我听到很多人提到 封闭式 解决方案 我也不知道这意味着什么 但在尝试解决递归关系时经常会出现
  • C# Julian 日期解析器

    我在电子表格中有一个单元格 它是 Excel 中的日期对象 但当它来自 C1 的 xls 类时 它会变成双精度型 类似于 2009 年 1 月 7 日的 39820 0 我读到这是儒略日期格式 有人可以告诉我如何在 C 中将其解析回 Dat
  • 参数数量在编译时确定的 Lambda 函数

    我想声明一个带有 N 个参数的 lambda 函数 其中 N 是模板参数 就像是 template
  • 未找到 _sqlite3_open 等符号错误

    您好 我收到此错误 Undefined symbols sqlite3 open referenced from main in ccRlWVer o sqliite3 close referenced from main in ccRlW
  • 为什么调试器只显示数组指针中的一个元素?

    首先 我知道new是执行此操作的 C 方法 我只是表明有不止一种方法可以重现此错误 而且两种方法都令人难以置信的令人沮丧 我有两种形式的源文件 我正在尝试调试另一个编程作业 但我并没有寻求帮助 基本上 我正在尝试重新实施set作为一个类 具
  • OpenGL 计算着色器调用

    我有一个与新计算着色器相关的问题 我目前正在研究粒子系统 我将所有粒子存储在着色器存储缓冲区中 以便在计算着色器中访问它们 然后我派遣一个一维工作组 define WORK GROUP SIZE 128 shaderManager gt u
  • 如何在 Winform DataGridView 中创建不同的单元格格式

    我有一个 DataGridView 我将其绑定到 DataTable DataTable 是一个全数字值 要求 DataGridView 中的每 n 行都包含文本 而不是数值 以便在视觉上为用户分隔部分 我很高兴在绑定后将此文本数据放入 D
  • 从 STL 列表中删除项目

    我想创建一个函数 如果符合特定条件 则将项目从一个 STL 列表移动到另一个列表 这段代码不是这样做的方法 迭代器很可能会被擦除 函数失效并导致问题 for std list
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所
  • C# amo 获取角色完整

    我正在开发一个 SSAS 项目 其中除其他事项外 我需要获取 C 中表格多维数据集的完整用户列表 目前我让它以这样的方式工作 我可以获得角色 但数据不完整 当我调用 Server Database Roles 为了便于阅读而简化 属性并枚举

随机推荐

  • AppEngine 响应时间差异

    我正在考虑使用 AppEngine 来部署我正在开发的网络应用程序 作为我对 AppEngine 平台调查的一部分 我一直在检查简单请求的响应时间 为此 我编写了一个简单的 PING servlet SuppressWarnings ser
  • R:计算抛硬币的频率

    我正在使用 R 编程语言 我模拟了这个包含 1000 次硬币翻转的数据集 然后我计算了 2 个翻转序列 的数量 Coin lt c H T Results sample Coin 1000 replace TRUE My Data data
  • Node.js 隔离物是什么?为什么他们现在都死了?

    在0 7 0中 实验分离支持 http blog nodejs org 2012 01 16 node v0 7 0 unstable 原文如此 已推出 除了一些模糊的想法之外 我一直不理解这一点 即它们提供了类似线程的功能 但没有线程的问
  • g.i.cs 文件丢失,类不再包含 InitializeComponent 的定义

    我在业余时间开发了一个 UWP 项目 以掌握 UWP MVVM 和 Prism 该项目最初非常经典 没有使用 MVVM 和 Prism 我一直在努力将这两个纳入该项目 我一直依赖着https msdn microsoft com en us
  • 如何在ARKit中使用环境贴图?

    ARKit 2 0 添加了一个名为 AREnvironmentProbeAnchor 的新类 阅读它的说明 似乎 ARKit 可以自动收集环境纹理 立方体贴图 我相信我们现在可以创建一些反映真实环境的虚拟对象 但我仍然不清楚这是如何工作的
  • Swift 包管理器有本地缓存​​吗?

    每次我加载新包时 Xcode 都会从 Github 重新下载所有依赖项 而不是重用我已经为其他项目加载的一些依赖项 例如 我希望当我引用时 package name SwiftyJSON url https github com Swift
  • 如何查找表的当前大小(在内存中)?

    我有一个使用 engine MEMORY 指定的内存表 我可以运行什么命令来了解它当前占用了多少空间 最大尺寸怎么样 SHOW TABLE STATUS LIKE tablename G 其中 tablename 是您要检查的表的名称
  • 如何使用 python 库找到骨架图像中的循环?

    我有很多这样的骨架图像 我如何检测骨架中的循环 是否有 特殊 函数可以执行此操作 或者我应该将其实现为图表 如果只有图形选项 python图形库NetworkX可以帮助我吗 您可以利用骨架的拓扑结构 循环不会有洞 所以我们可以使用scipy
  • Keras ImageDataGenerator:随机变换

    我有兴趣通过随机图像转换来增强我的数据集 我正在使用 Keras图像数据生成器 https keras io preprocessing image imagedatagenerator 并且我在尝试申请时收到以下错误random tran
  • 俄罗斯方块棋子旋转算法

    表示和旋转俄罗斯方块游戏棋子的最佳算法 和解释 是什么 我总是发现片段轮换和表示方案令人困惑 大多数俄罗斯方块游戏似乎在每次旋转时都使用天真的 重新制作块数组 http www codeplex com Project ProjectDir
  • 使用 WPF 更改与窗口大小相关的字体大小?

    是否有可能 如果缩小窗口 FontSize 会变小 如果放大窗口 FontSize 会变大 将您的文本包裹在Viewbox
  • 视图内变量的范围是什么?

    如果我在 ASP NET MVC 视图中有如下代码 然后在页面下方 我在另一个代码渲染块中创建另一个脚本 我可以重复使用吗admin变量 它会记住页面上层的状态 还是范围就在 blocks 以下是我注意到的有关 MVC 范围的内容 内容控件
  • 如何测试 angularjs 指令来监视函数调用?

    下面的代码执行但抱怨 element popover 没有被调用 我似乎无法弄清楚问题是什么 提前感谢您的帮助 指示 angular module directives directive popOver function http ret
  • DCOM 出了什么问题?

    人们似乎对 DCOM 有很多敌意 我很想知道为什么 对于仍在使用 C 编写 Win32 SKD 的公司来说 是否有真正的理由在当前或未来的开发中不使用 DCOM 未来的某些 Windows 版本是否将不支持它 是否太脆弱 经常无法工作 与其
  • 关闭 iPhone 键盘

    我正在尝试重新创建类似于 safari 中使用的弹出键盘的东西 我可以通过在视图和相应按钮上放置一个工具栏来直观地重现它 但是一旦用户触摸完成按钮 我就无法找到任何方法来关闭键盘 您需要记住几件事 开发人员忘记设置的第一个部分是delega
  • 在 Objective-C 中使用枚举作为外部文件中的参数?

    我在文件 foo h 中有一个名为 RandomEnum 的枚举 foo h typedef enum RandomEnum ran 1 0 ran 2 RandomEnum 在另一个文件 bar h 中 我尝试使用 RandomEnum
  • ShareMem/ 与 Delphi DLL 进行字符串交换

    我希望快点 我正要深入研究一个 Delphi 5 遗留应用程序 它调用 DLL 也是用 D5 编写的 传递一个 DLL 可以根据需要修改的字符串 我有 DLL 和应用程序的代码 粘贴在 DLL 源代码顶部的是关于使用 ShareMem 的注
  • Jquery输入数组形式ajax

    我如何获取输入数组usernamejQuery 变量中的值users
  • Log4net:按 utc 日期而不是服务器日期滚动文件

    有没有办法让 log4net 在 utc 时间而不是服务器时间上滚动文件 现在我的文件以 utc 时间存储日志 但它会滚动 即在服务器时间每天创建一个新文件 服务器采用太平洋时间 因此昨天的文件包含今天文件的前 8 小时日志 例如 10 月
  • 调车场算法能解析POSIX正则表达式吗?

    乍一看 调车场算法 http en wikipedia org wiki Shunting yard algorithm似乎适用于 POSIX 正则表达式解析 但由于我在编写解析器方面没有太多经验 或理论背景 所以我想在跳入并编写一些东西只