Regex para encontrar palabras duplicadas

Usa /\b(\w+)\s+\1\b/gi con buscar y reemplazar. Cada ejemplo de abajo está probado con el patrón, y puedes abrirlo en el Regex Tester con los textos de muestra ya cargados.

Actualizado el

/\b(\w+)\s+\1\b/gi
Abrir en Regex Tester

Antes

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

Después (reemplazar con "$1")

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

Cómo funciona el patrón

ParteSignificado
\b(\w+)Una palabra completa, capturada como grupo 1
\s+Espacios en blanco
\1\bReferencia inversa: la misma palabra otra vez
i flag“The the” cuenta como duplicado
→ $1Se reemplaza por una sola copia

Ejemplos de código

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);

Notas y limitaciones

Ideal para corregir textos. Algunas repeticiones son intencionales (“had had”, “that that”), así que revisa las coincidencias antes de reemplazarlas todas.

Preguntas frecuentes

¿Cuál es la regex para encontrar palabras duplicadas?
/\b(\w+)\s+\1\b/gi — se usa con buscar y reemplazar. Consulta la tabla de arriba para ver qué hace cada parte.
¿Funciona en Python y PHP?
Sí: los ejemplos de código de arriba usan el mismo patrón con re en Python y las funciones preg en PHP.
¿Cómo pruebo esta regex?
Haz clic en “Abrir en Regex Tester”: el patrón, los flags y el texto de muestra se cargan automáticamente, y las coincidencias se resaltan mientras editas.