Меня спросили сегодня, есть ли библиотека, чтобы взять список строк и вычислить наиболее эффективное регулярное выражение для соответствия только этим строкам. Я думаю, что это NP Complete problem сам по себе, но я думаю, что мы можем немного доработать область.Упрощение регулярных выражений ИЛИ шаблонов
Как бы я сгенерировал и упростить регулярное выражение, чтобы соответствовать подмножеству хостов из большего набора всех хостов в моей сети? (Зная, что я не могу получить наиболее эффективное регулярное выражение.)
Первый шаг очень прост. Из следующего списка;
- appserver1.domain.tld
- appserver2.domain.tld
- appserver3.domain.tld
я могу сцепить и избежать их в
appserver1\.domain\.tld|appserver2\.domain\.tld|appserver3\.domain\.tld
И я знаю, как вручную упростить регулярное выражение до
appserver[123]\.domain\.tld
Оттуда я могу проверить этот шаблон на весь список хостов и убедиться, что он соответствует только выбранным 3 хостам. Я не знаю, как автоматизировать процесс упрощения. Существуют ли библиотеки (в Perl, Javascript или C#) или обычные методы?
Благодаря
Update я получил некоторые удивительные модули Перла, но я хотел бы передний конец решения, а также. Это означает Javascript. Я искал, но никто не портировал модули perl в JS, и я не смог найти язык для поиска этого типа библиотеки.
Хорошо найти! Интересно, что сообщество C# может вызвать в воображении;) –
Удивительный! Я действительно надеюсь, что это существует и в JS. – reconbot