Retour aux fonctions

REGEXREPLACE

Remplace une partie d'une chaîne de texte par une autre chaîne à l'aide d'expressions régulières.

TextREGEXREPLACE(text, regular_expression, replacement)

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

  • \d chiffre, \D non-chiffre
  • \w lettre/chiffre/tiret bas, \W l'inverse
  • \s espace blanc, \S non-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, $ fin
  • a|b a 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 VALUE pour calculer avec.
  • Les zéros initiaux disparaissent dans l'entrée. Les nombres sont d'abord convertis en texte : 00123 stocké 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 avec REGEXREPLACE(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 ?

  • SUBSTITUTE remplace un texte fixe et est plus simple et plus rapide pour des chaînes exactes.
  • REPLACE remplace des caractères d'après leur position.
  • REGEXREPLACE sert 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.

Articles associés

Newsletter

Plus d'exemples sur REGEXREPLACE arrivent bientôt.

Nous préparons des mises à jour courtes et pratiques pour les utilisateurs avancés de Sheets.