PHP. Упрощенный язык для записи регулярных выражений пользователями?
Здравствуйте.
Подскажите пожалуйста, есть ли готовая библиотека, которая бы позволила простым пользователям не знакомым с программированием записывать выражения для обработки строк.
Как пример: есть строка - А*.еее
Пользователь пишет "*." equal " "
Программа интерпретирует, что А*.еее == Аеее
Знаю, что самое время достать из под стола шаблон "Interpreter" и писать все самому, но вдруг на github уже есть реализация с кучей звезд, ведь лень это двигатель прогресса.
Ну да, это намного проще и пользователю совсем не нужно знать регулярные выражения. Тот кейс который вы описали это простая замена, никаких регулярок.
шаблон "Interpreter"
Чта?
Вообще реализовать свой простенький DSL не сильно проблема. Вопрос что вам нужно делать. В целом же регулярные выражения проще чем они есть не опишешь. Вопрос только в реализации примеров, превью изменений и т.д.
Нужен упрощенный язык запросов.
Чтобы пользователь мог указать, что в строке не учитывалась первая по счету *, а все тире заменялись на "@" + отбрасывались все символы после 5-го.
Примеров может быть сколь угодно.
Целевая аудитория - модератор сайта.
И да, паттерн я привел в тему, что Вас удивляет?
Согласен, что написать не архисложно, но буду очень признателен за наводку на что-то подобное, о чем и написал в заглавном сообщении.
brainflow: ну вам по сути нужно как-то синтаксис шаблонов сделать:
*{1, 2}my
описывает "любой символ в количество от одного до двух
И это дело можно скомпилить в /.{1, 2}/ вообще без проблем. То есть мы сначала экранируем все что можно а потом производим подмену.
Ну то есть я предлагаю взять за основу регулярки и упростить их. К сожалению готовых реализаций врят-ли найдется ибо все что я знаю использует синтаксис все тех же регулярок. И я считаю что это лучше чем придумывать свою шляпу так как по сути у вас выйдет то же самое, но есть риск что модераторы уже знают минимально регулярки или смогут их освоить и сделать этот навык полезным для себя.