Regex pour trouver les mots en double

Utilisez /\b(\w+)\s+\1\b/gi avec la recherche et le remplacement. Chaque exemple ci-dessous est testé avec ce motif, et vous pouvez l'ouvrir dans le Testeur de regex avec les exemples préchargés.

Mis à jour le

Avant

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

Après (remplacer par "$1")

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

Fonctionnement du motif

PartieSignification
\b(\w+)Un mot entier, capturé comme groupe 1
\s+Espace blanc
\1\bRéférence arrière : le même mot à nouveau
i flag« The the » est considéré comme un doublon
→ $1Remplacé par une seule copie

Exemples de code

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

Remarques et limites

Idéal pour la relecture. Certaines répétitions sont intentionnelles (« had had », « that that »), donc vérifiez les correspondances avant de toutes les remplacer.

Questions fréquentes

Quelle est la regex pour trouver les mots en double ?
/\b(\w+)\s+\1\b/gi — elle s'utilise avec la recherche et le remplacement. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Cela fonctionne-t-il en Python et en PHP ?
Oui — les exemples de code ci-dessus utilisent le même motif avec re en Python et les fonctions preg en PHP.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le Testeur de regex » : le motif, les drapeaux et le texte d'exemple se chargent automatiquement, et les correspondances se surlignent pendant que vous modifiez.