Задать вопрос
DamianLewis
@DamianLewis

Поиск дубликатов в тексте через регулярные выражения?

Здравствуйте! Интересует возможность найти и отобразить дубликаты в тексте. Не банальное Ctrl+F и поиск слова, а более сложный автоматизированный механизм.
Например: Есть определенное количество программ, которые отличаются лишь версией. Находятся такие программы в куче других программ и я хочу отобразить такие программы со схожими именами. Типа, имена совпадают на 50/70% и т.д. Слышал, что такое можно провернуть через регулярные выражения, но я в них ничего не понимаю. Как это сделать?
  • Вопрос задан
  • 3174 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 3
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Никак. Смотрите здесь.
Пример
Мария
Анна
Виктория
Полина
Елизавета
Екатерина
Ксения
Валерия
Варвара Free 1.4
Варвара Pro 2.0
Александра
Вероника
Надежда
Светлана
Злата
Олеся 3.3
Олеся Free_Lite 4.8
Наталья
Эвелина
/варвара.*?/usix
/олеся.*?/usix

Для простой кластеризации можно использовать PHP и функцию similar_text().
Ответ написан
@LiS-31
По-моему у вас не совсем полный подход к проблеме.
Дано:
Набор названий программ - массив строк.
Задача:
Найти повторяющиеся выражения в значениях массива.
Решение (прототип):
Задаем названия программ в качестве массива строк А.
Выполняем операцию разделения строк по символу (например пробел или _), чтобы сегментировать названия, и передаем полученные значения в другой массив Б.
Выполняем циклическую проверку нахождения значения из массива Б в значении массива А (например тем же RegExp /Б[i].*?/usix)
Сортируем\проверяем степень совпадения и т.д. по вкусу и выводим результат

Средства реализации по вкусу: Python, PowerShell, Bash, Perl.
Ответ написан
DamianLewis
@DamianLewis Автор вопроса
Нашел решение проблемы. Он конечно колхозный, но результат именно такой, какой мне нужен.
Решение:
Нужен след. софт: NonCompressibleFiles(бесплатно), Advanced Renamer(бесплатно), dupeGuru (GPLv3 бесплатно).
1. Через программу NonCompressibleFiles создал столько количество файлов, сколько и строк. Допустим 100 строк, значит создал 100 файлов. Размер каждого фала сделал по 2кб. Все делается в один клик.
2. Через программу Advanced Renamer переименовал все файлы в названия строк. Все делается в один клик.
3. Через программу dupeGuru сделал поиск дубликатов по имени + % совпадения. В итоге именно такой результат, который мне нужен!
Скрин 1
Скрин 2
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы