Мне был задан интересный вопрос от коллеги по оперативной боли, которую мы сейчас имеем, и мне любопытно, есть ли там что-нибудь (утилита/library/алгоритм), которые могут помочь автоматизировать это.
Скажем, у вас есть список литеральных значений (в наших случаях это URL-адреса). То, что мы хотим сделать, основано на этом списке, придумать одно регулярное выражение, которое соответствует всем этим литералам.
Итак, если мой список:
http://www.example.com
http://www.example.com/subdir
http://foo.example.com
Самый простой ответ:
^(http://www.example.com|http://www.example.com/subdir|http://foo.example.com)$
но это становится большим для большого количества данных, и у нас есть предел длины, который мы пытаемся остаться.
В настоящее время мы вручную записываем регулярные выражения, но это не очень хорошо масштабируется, и это не очень полезно для любого времени. Существует ли более автоматизированный способ декомпозиции исходных данных для создания оптимального по длине регулярного выражения, которое соответствует всем исходным значениям?