regex - 二维中的正则表达式是否有任何好的/有趣的类比?

标签 regex algorithm language-agnostic graphics

二维正则表达式是否有任何好的(或至少有趣但有缺陷的)类似物?

在一个维度上,我可以写类似 /aaac?(bc)*b?aaa/ 的东西来快速拉出交替的 b 区域c 具有至少三个 a 的边框。也许同样重要的是,我可以在一个月后回来查看它在寻找什么。

我发现自己正在为 2d 中的类似问题编写自定义代码(有些更复杂/受限更多),如果有一个更简洁和标准化的符号会很好,即使我必须自己编写它背后的引擎。

第二个例子可能被称为“找到+”。目标是定位一个包含 3 个或更多 a 的列,一个 b 被 3 个或更多 a 括起来,具有三个或更多 a 下面。它应该匹配:

..7...hkj.k f
7...a  h o j 
----a--------
 j .a,g- 8 9 
.aaabaaaaa7 j
 k .a,,g- h j
 hh a----?  j
    a   hjg 

可以写成 [b^(a{3})v(a{3})>(a{3})<(a{3})] 或...

建议?

最佳答案

我不是正则表达式专家,但发现这个问题很有趣,我环顾四周,发现这个很有趣 blog entry .特别是那里用于定义 2D 正则表达式的语法看起来很吸引人。那里链接的论文可能比我告诉你更多。

评论更新:这是主要作者页面的链接,您可以在其中下载链接论文“二维语言”:http://www.mat.uniroma2.it/~giammarr/Research/pubbl.html

关于regex - 二维中的正则表达式是否有任何好的/有趣的类比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/615729/

相关文章:

web-applications - Web 应用程序的替代品?

javascript - 在解析期间检测内容中的正则表达式

php - 获取可能的数组组合

algorithm - 以最少的运行次数遍历网格(图形)的每条边

java regex 为什么这两个正则表达式不同

python - 给定正则表达式删除 Pandas 中的行

algorithm - 查找重叠时间的线程

math - float 学坏了吗?

regex - 美国银行机构帐号正则表达式?

sql - REGEXP Oracle 的几个 not 语句