Как удалить все дубликаты слов на каждой строке с помощью Notepad++?

Я работаю над файлом, содержащим строки с ключевыми словами, а некоторые строки содержат повторяющиеся ключевые слова.

например:

dangerous,dangerous,hazardous,perilous

Я хочу сказать Notepad++, что я хочу удалить каждое Дублированное слово в строке. Для этого примера dangerous, будет удалено:

dangerous,hazardous,perilous

у меня есть куча таких строк, и именно поэтому я ищу автоматизированный способ сделать это.

22
задан Sathya
04.04.2023 12:28 Количество просмотров материала 2411
Распечатать страницу

2 ответа

вы можете использовать регулярное выражение для удаления последовательных дублированных слов в строке, однако я не думаю, что можно удалить дублированные слова, которые не являются последовательными (e.g dangerous, hazardous, dangerous).

используйте это регулярное выражение в окне заменить в Notepad++, и не забудьте выбрать "регулярное выражение" в качестве опции режима поиска ниже:

это регулярное выражение удалит все подряд повторяющиеся слова - будь то 2 дублированных слова или 10 повторяющихся слов подряд: \b(\w+)(?:,\s+\b)+.

таже без запятых регекс быть: \b(\w+)(?:\s+\b)+ (может быть полезно для других пользователей).

если вы хотите регулярное выражение специально только для двух дублированных слов (Double), используйте это регулярное выражение: (\b\w+\b)\W+.

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

эти регулярные выражения исправят ситуацию, подобную описанной в вашем вопросе в качестве примера. Первое регулярное выражение будет работать для каждого числа повторяющихся слов (e.g dangerous, dangerous, dangerous, dangerous, hazardous), в то время как вторая версия будет работать только для двух дублированных слов (e.g dangerous, dangerous, hazardous).

Примечание: регулярное выражение будет применяться только к формату, описанному в вопросе, а это означает, что такие форматы, как two words, two words, anotherword,two-words, two-words, anotherword,three words expression, three words expression, anotherword не будет изменено, потому что регулярное выражение к ним не будет применяться.

8
отвечен amiregelz 2023-04-05 20:16

вот способ сделать работу, это заменит все повторяющиеся слова Эван, если они не являются смежными:

  • Ctrl+H
  • найти: (?:^|\G)(\b\w+\b),?(?=.*)
  • заменить на: LEAVE EMPTY
  • проверить обернуть вокруг
  • проверить регулярное выражение
  • НЕ ПРОВЕРЯТЬ . matches newline
  • заменить все

объяснение:

(?:^|\G)    : non capture group, beginning of line or position of last match
(\b\w+\b)   : group 1, 1 or more word character (ie. [a-zA-Z0-9_]), surrounded by word boundaries
,?          : optional comma
(?=.*)    : positive lookahead, check if thhere is the same word (contained in group 1) somewhere after

задается вход типа: dangerous,dangerous,hazardous,perilous,dangerous,dangerous,hazardous,perilous

у нас:

dangerous,hazardous,perilous
0
отвечен Toto 2023-04-05 22:33

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх