Есть ли хорошие (или, по крайней мере, интересные, но ошибочные) аналоги для регулярных выражений в двух измерениях?
В одном измерении я могу написать что-то вроде /aaac?(bc)*b?aaa/
, чтобы быстро вывести область чередующихся b
и c
с границей не менее трех a
s. Возможно, так же важно, что я могу вернуться через месяц и сразу увидеть, что он ищет.
Я нахожу, что я пишу собственный код для аналогичных проблем в 2d (несколько более сложный/ограниченный), и было бы неплохо иметь более краткими и стандартизованными обозначениями, даже если мне придется самому написать движок за ним.
Второй пример можно назвать "найти +". Цель состоит в том, чтобы найти столбец из 3 или более a
s, 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})] или...
Предложения?