Удалить дублирующиеся строки в Notepad++

Я пытался найти способ удалить дублированные строки в Notepad++ (не удаляя дублированные строки). Например, если у меня есть текст:

Любимое мороженое Алисы (не мороженое): Ваниль! Любимое мороженое Алисы (не мороженое): Ваниль! Пожалуйста, принесите мороженое из магазина

Результат должен быть

Любимое мороженое Алисы (не мороженое): Ваниль! Пожалуйста, принесите мороженое из магазина

Я попытался найти несколько примеров и нашел это, но на самом деле это не работает так, как ожидалось. Заранее спасибо.

1 ответ

Решение

Если у вас есть последовательные дубликаты, вы можете использовать регулярное выражение, как это:

(.*)\1

Рабочая демонстрация

И используйте строку замены: \1 или же $1 как вы можете видеть в substitution section на скриншоте.

Обновление: как 1010 указал в этом комментарии:

имейте в виду, что он может совпадать с дубликатами, такими как "o" в "look", или частями предложения, которые повторяют символы, как в "... это дубликат"

Вы можете предотвратить это, создав ограничение для минимальных дублированных символов. Например, это регулярное выражение ищет дублированные символы, которые будут содержать не менее 5 дублированных символов (вы можете изменить число так, как считаете нужным):

(.{5,})\1

У меня была аналогичная проблема, и я хотел удалить повторяющиеся строки. Оказывается, для этого уже есть встроенная функция.

Просто перейдите в "Правка-> Операции с линиями-> Удалить последовательные повторяющиеся линии".

Другие вопросы по тегам