REGEXREPLACE remplace chaque partie d'un texte qui correspond à une expression régulière par un nouveau texte. C'est le plus puissant des outils de nettoyage de Sheets : supprimer tous les non-chiffres d'un numéro de téléphone, réduire les espaces répétés, reformater des dates, masquer des e-mails ou transformer « Nom, Prénom » en « Prénom Nom » en une seule formule.
Syntaxe
=REGEXREPLACE(text, regular_expression, replacement)
text: Le texte à modifier.regular_expression: Le motif à trouver, sous forme de texte entre guillemets. Google Sheets utilise la syntaxe RE2.replacement: Le texte à mettre à la place de chaque correspondance. Il peut faire référence aux groupes capturés avec$1,$2, etc.
Toutes les correspondances sont remplacées, pas seulement la première. La correspondance tient compte de la casse, sauf si le motif commence par (?i).
Exemples de base
=REGEXREPLACE("(555) 123-4567", "\D", "")
Renvoie 5551234567 : chaque non-chiffre (\D) est remplacé par rien.
=REGEXREPLACE("trop d'espaces ici", "\s+", " ")
Renvoie trop d'espaces ici : toute suite d'espaces blancs devient un seul espace.
=REGEXREPLACE("Bonjour Monde", "(?i)monde", "Sheets")
Renvoie Bonjour Sheets, sans tenir compte de la casse.
Utiliser les groupes capturés
Les parenthèses capturent une partie de la correspondance, et $1, $2, ... replacent ces parties dans le remplacement. Cela permet de réorganiser du texte :
=REGEXREPLACE("Dupont, Jeanne", "(\w+), (\w+)", "$2 $1")
Renvoie Jeanne Dupont : le groupe 1 est le nom, le groupe 2 le prénom, et le remplacement les échange.
=REGEXREPLACE("2026-03-15", "(\d{4})-(\d{2})-(\d{2})", "$3/$2/$1")
Renvoie 15/03/2026 : une date reformatée de l'année en premier au jour en premier.
Les briques des expressions régulières
\dchiffre,\Dnon-chiffre\wlettre/chiffre/tiret bas,\Wl'inverse\sespace blanc,\Snon-espace blanc.n'importe quel caractère,+un ou plusieurs,*zéro ou plusieurs,?facultatif[aeiou]n'importe quel caractère listé,[^a-z]tout sauf les lettres minuscules^début,$fina|ba ou b(?i)ignorer la casse
Pour correspondre à un caractère spécial littéral comme ., ( ou $, placez une barre oblique inverse devant.
Formules pratiques
Ne garder que les chiffres (ou que les lettres)
=REGEXREPLACE(A2, "\D", "")
=REGEXREPLACE(A2, "[^A-Za-z]", "")
Supprimer les espaces en trop
=REGEXREPLACE(TRIM(A2), "\s+", " ")
TRIM gère les espaces ordinaires. Le motif réduit aussi les tabulations et les sauts de ligne.
Supprimer les caractères non imprimables et les sauts de ligne
=REGEXREPLACE(A2, "[\n\r\t]", " ")
Retirer les balises HTML
=REGEXREPLACE(A2, "<[^>]+>", "")
Masquer une partie d'un e-mail
=REGEXREPLACE(A2, "^(.).*(@.*)$", "$1***$2")
Transforme ana@example.com en a***@example.com.
Supprimer le texte entre parenthèses
=REGEXREPLACE(A2, "\s*\([^)]*\)", "")
Normaliser un numéro de téléphone
=REGEXREPLACE(REGEXREPLACE(A2, "\D", ""), "(\d{3})(\d{3})(\d{4})", "($1) $2-$3")
D'abord, retirez tout sauf les chiffres, puis mettez en forme un numéro à 10 chiffres.
Supprimer tout ce qui suit un caractère
=REGEXREPLACE(A2, "\?.*$", "")
Supprime la chaîne de requête d'une URL, comme ?utm_source=....
Nettoyer toute une colonne
=ARRAYFORMULA(REGEXREPLACE(A2:A, "\D", ""))
Ajoutez IF(A2:A = "", "", ...) si les cellules vides doivent rester vides.
Erreurs courantes
#VALUE!: « Expression régulière invalide ». Un problème de syntaxe, comme un crochet ou une parenthèse non fermé, ou une fonctionnalité non gérée (assertions avant et références arrière dans le motif).- Les nombres reviennent sous forme de texte. Le résultat est toujours du texte. Entourez de
VALUEpour calculer avec. - Les zéros initiaux disparaissent dans l'entrée. Les nombres sont d'abord convertis en texte :
00123stocké comme nombre vaut déjà123. Mettez la colonne source au format texte brut. - Rien ne change. La casse (ajoutez
(?i)), un caractère littéral à échapper, ou des espaces insécables (CHAR(160)). Traitez-les avecREGEXREPLACE(A2, "\x{00A0}", " "). - Trop de texte remplacé.
.correspond à presque tout, et.*est glouton. Utilisez.*?ou une classe plus précise comme[^)]*.
REGEXREPLACE, SUBSTITUTE ou REPLACE ?
SUBSTITUTEremplace un texte fixe et est plus simple et plus rapide pour des chaînes exactes.REPLACEremplace des caractères d'après leur position.REGEXREPLACEsert aux motifs : tout ce qui a une forme, plusieurs variantes, ou un réarrangement via des groupes capturés.
Questions fréquentes
Remplace-t-elle toutes les correspondances ou seulement la première ? Toutes.
Tient-elle compte de la casse ? Oui. Commencez le motif par (?i) pour l'ignorer.
Comment supprimer les correspondances ? Utilisez une chaîne vide "" comme remplacement.
Comment réutiliser le texte trouvé dans le remplacement ? Placez la partie entre parenthèses et utilisez $1, $2, etc. Pour toute la correspondance, entourez le motif entier de parenthèses et utilisez $1.
Fonctions associées
REGEXEXTRACT: Extrait le texte correspondant.REGEXMATCH: Teste si un texte correspond à un motif.SUBSTITUTE: Remplace un texte précis sans motif.TRIM: Supprime les espaces en trop.SPLIT: Divise un texte au niveau d'un séparateur.