Ви можете використовувати звичайний вираз для видалення послідовних дублюваних слів у рядку, проте я не думаю, що можливо видалити дублювані слова, які не є послідовними (наприклад dangerous, hazardous, dangerous
).
Використовуйте цей регулярний вираз у вікні заміни в Блокноті ++, і не забудьте вибрати "Регулярний вираз" як параметр Режим пошуку нижче:
Це регулярний вираз видаляє всі послідовні дубльовані слова - будь то 2 дубльованими словами або 10 дубльованих слів послідовно: \b(\w+)(?:,\s+\1\b)+
.
Точно такий же регулярний вираз без коми - це: \b(\w+)(?:\s+\1\b)+
(може бути корисним для інших користувачів).
Якщо ви хочете , регулярний вираз , в зокрема тільки два дубльованих слова (двійники), використовуйте це регулярний вираз: (\b\w+\b)\W+\1
.
Помістіть це регулярний вираз в Замінити коробку , щоб зберегти одне входження слова ( в іншому випадку все повторювані слова будуть видалені): ${1}
.
Ці регулярні вирази виправлять ситуацію, схожу на ту, яку ви описали у своєму запитанні як приклад. Перший регулярний вираз буде працювати для кожної кількості дублюваних слів (наприклад dangerous, dangerous, dangerous, dangerous, hazardous
), а другий варіант працюватиме лише для двох дублюваних слів (наприклад dangerous, dangerous, hazardous
).
Примітка: Регулярний вираз застосовуватиметься лише до формату, описаного у запитанні, тобто такі формати, як two words, two words, anotherword
, наприклад two-words, two-words, anotherword
, three words expression, three words expression, anotherword
не будуть змінені, оскільки регулярний вираз не застосовуватиметься до них.
dangerous,hazardous,dangerous,perilous
? Іншими словами, чи дублюються слова завжди поруч?