c# - IEnumerable 上的类似正则表达式的模式匹配而不是 C# 中的字符串字符
问题描述
我正在尝试修改 C# 中的 CIL 代码指令列表。常见任务包括查找指令组或指令模式,并用其他指令替换它们,同时重用原始匹配中的一些信息。这听起来很像正则表达式,只是我的用例是在实例列表中的特定类型而不是字符串中的字符。
我可以编写一些基本代码来搜索和匹配内容并替换它,但我想知道是否有更通用的方法使用正则表达式语法,如“x”?或“(a|b)+”或“(a+)b*(c+)”,但 a、b、c 不是字符而是类的实例。最好在结果表达式中引用捕获的部分。我知道某些模式,如“单词开头”或“空格”是没有意义的。
在我的开源补丁库Harmony中,我以自定义元组类型表示操作码及其操作数,模式匹配应在 IEnumerable 上运行,并最终生成一个新的 IEnumerable。
是否有一个通用的模式匹配算法可以扩展来存档?
解决方案
推荐阅读
- excel - 如何从特定单元格中删除按钮?
- sql - 为什么我的 PostgreSQL v13 被零除?我想应该过滤掉行
- php - 如何在 Symfony 5 上使用带有 easyAdmin 3 的 Vich 上传器
- xml - powershell 编写 csv 的第一行
- markdown - 语义 Markdown 文件/目录路径
- r - 使用 R 获取匹配字符串的文本之前(文本分析)
- c# - 从列表中获取最长的子类别链
- docker - Kubernetes 在滚动更新中选择性地更新部署
- pandas - Pandas:计算具有 NaN 值的四列的唯一组合
- excel - 如果满足条件,如何复制和粘贴行 - 使用当前代码