RegExp & PCRE преобразовать в дерево с собственным синтаксисом - PullRequest
0 голосов
/ 24 июня 2019

Требуется препроцессор для создания собственного синтаксиса регулярного выражения, основанного на синтаксисе RegExp и PCRE, чтобы его можно было проанализировать в синтаксисе PCRE. Пример в конце

Полагаю, мне нужен процессор регулярных выражений, который выводит древовидную структуру, представляющую регулярные выражения, поэтому я могу пройтись по дереву и заменить некоторые части, а затем скомпилировать его в строку регулярного выражения.

Но этот процессор должен иметь возможность добавлять собственный синтаксический анализ / обработку.

Есть ли такой процессор, уже сделанный кем-то? Я сделал один самостоятельно некоторое время назад, но искал более профессиональное решение.

Конечно, мы говорим о node.js / javascript

Да, node.js не поддерживает PCRE, но есть модуль npm для использования PCRE с node.js, он прекрасно работает!


Зачем кому-то это нужно?

Например, вы можете создать большое регулярное выражение меньшими:

(John (like|love)s every (animal|creature) on earth: (#animals))

(# ...) - группа хэш-тегов, значит вместо нее будет другое регулярное выражение, содержащее альтернативы для всех животных.

Другой пример, вы можете создавать более сложные виды групп:

(@(a|x)(b)(c))

группа перестановок соответствует всем скобкам (3 или менее или более) в любом порядке:

(a|x)(b)(c)
(a|x)(c)(b)
(b)(a|x)(c)
(b)(c)(a|x)
(c)(a|x)(b)
(c)(b)(a|x)

есть больше, но я думаю, что сделал точку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...