Регулярное выражение для поиска повторяющихся слов

Используйте /\b(\w+)\s+\1\b/gi вместе с поиском и заменой. Каждый пример ниже проверен на этом шаблоне, а открыть его в Regex Tester можно с уже загруженными образцами.

Обновлено

До

This is is a test of the the duplicate finder. The the end.

После (замена на "$1")

This is a test of the duplicate finder. The end.

Как работает шаблон

ЧастьЗначение
\b(\w+)Одно целое слово, захваченное как группа 1
\s+Пробельные символы
\1\bОбратная ссылка: то же самое слово ещё раз
i flag«The the» считается дубликатом
→ $1Заменяется одной копией

Примеры кода

JavaScript

const out = text.replace(/\b(\w+)\s+\1\b/gi, "$1");

Python

import re

out = re.sub(r'\b(\w+)\s+\1\b', r'\1', text, flags=re.I)

PHP

$out = preg_replace('/\b(\w+)\s+\1\b/i', '$1', $text);

Примечания и ограничения

Отлично подходит для корректуры. Некоторые повторы намеренные («had had», «that that»), поэтому просматривайте совпадения перед тем, как заменять все разом.

Часто задаваемые вопросы

Какое регулярное выражение находит повторяющиеся слова?
/\b(\w+)\s+\1\b/gi — используется с поиском и заменой. В таблице выше описано, что делает каждая часть.
Работает ли это в Python и PHP?
Да — примеры кода выше используют тот же шаблон с re в Python и функциями preg в PHP.
Как протестировать это регулярное выражение?
Нажмите «Открыть в Regex Tester» — шаблон, флаги и образец текста загрузятся автоматически, а совпадения будут подсвечиваться по мере редактирования.