Smart Regexp Creator

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

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

Если в гугле набрать "регулярные выражения создание" и подобные строки для поиска, то вываливается куча инструментов, которые работают с выражениями. Я проверил достаточно большое количество. Большинство просто предоставляет сервис по проверке работоспособности выражения. А с остальными....а с остальными я не смог с ходу разобраться как они работают. А если с ходу непонятно, то в топку такой сервис.

То есть, если мы имеем формулу x+regexp=y, где x - это входной текст, а y - отфильтрованный текст, то существующие решения требуют на вход x и regexp.

А мне нужно чтобы я сам задавал на входе x и y, а инструмент генерил для меня подходящее выражение.

Пример.

Входной текст:

pop

mov %ax

mov %bx

mov %cx

...

разный мусор

...

Что хочу получить после применения фильтра (регулярного выражения):

mov %ax

mov %bx

То есть инструмент должен выдать в идеале такое выражение:

mov(?!.*%cx) 

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

Интерфейс должен быть простой. Ресурс - сайт.

Примечание: очевидно, что идея не новая и учитывая отсутствие (по крайней мере - на вскидку) реализаций думаю, что имеются подводные камни. Как минимум, алгоритм тут будет непростой.

Но тем не менее, давайте попробуем оценить, обкатать процесс модерации для начала :)

Рейтинг записи: 2
Добавлять комментарии могут только авторизированные/зарегистрированные пользователи. Пожалуйста, зарегистрируйтесь или авторизуйтесь.