Как проверить, являются ли две строки частичным совпадением в C#? [дубликат]
Возможные Дубликаты:
существуют ли библиотеки функций нечеткого поиска или сходства строк, написанные для C#?
Я создаю приложение, которое будет за исключением ввода пользователем песни или исполнителя или названия альбома, а затем будет просматривать массив строк или ArrayList для любых возможных совпадений.
автоматические предложения будут рассчитываться на основе процента совпадения.
для пример
если пользователь ссылка prk он должен найти Linkin Park
или Link 80
или Link Wray
но процент совпадения будет отличаться для всех
предположим, что коллекция будет искать только имена исполнителей в коллекции исполнителей и название песни в коллекции песен.
(процентные цифры только для объяснения)
Linkin Park - 98%
Link Wray -82%
Link 80 - 62%
решение не должно быть кодом C#, любое регулярное выражение или псевдо-код будут хорошими, но должны быть реализованы в С.#
2 ответов
обычно реализация расстояние Левенштейна для этого используется также называемое расстояние редактирования. Это найдет совпадения на основе минимального количества изменений, необходимых для преобразования одной строки в другую, считая все вставки, удаления или замены одного символа в качестве меры для "стоимости" - кандидаты являются строками, которые имеют минимальную стоимость.
вот ссылка статьи С общей реализацией в C#.
вы ищете расстояние Левенштейна
здесь общая реализация расстояния Левенштейна. (как в Diff / Dist. между двумя!--0--> ' s)
реализации алгоритма расстояния Левенштейна во многих языках.