http://www-igm.univ-mlv.fr/~lecroq/string/node14.html
аюсь построить эффективный алгоритм сопоставления строк. Это будет выполняться в среде большого объема, поэтому производительность имеет решающее значение.
Вот мои требования:
Для данного доменного имени, например, www.example.com, определите, соответствует ли оно имени в списке записей.Записи могут быть абсолютными совпадениями, т.е. www.example.com.Записи могут включать символы подстановки, т.е. * .example.com.Подстановочные знаки совпадают с наиболее определенного уровня и выше. Например, * .example.com будет соответствовать www.example.com, example.com и sub.www.example.com.Записи с подстановочными знаками не внедряются, то есть sub. *. Example.com не будет записью.Язык / среда: C # (.Net Framework 3.5)
Я рассмотрел возможность разделения записей (и поиска домена) на массивы, изменения порядка, а затем итерации по массивам. Хотя точный, он чувствует себя медленно.
Я рассмотрел Regex, но беспокоюсь о точном представлении списка записей в виде регулярных выражений.
Мой вопрос: каков эффективный способ найти, если строка в форме доменного имени соответствует какой-либо строке в списке строк, учитывая приведенное выше описание?