Retour aux fonctions

REGEXMATCH

Indique si un texte correspond à une expression régulière.

TextREGEXMATCH(text, regular_expression)

REGEXMATCH teste si un texte contient un motif et renvoie TRUE ou FALSE. Elle rend IF, FILTER et les règles de mise en forme conditionnelle bien plus puissants qu'un simple test « égal à » ou « contient », par exemple « commence par INV suivi de chiffres » ou « contient l'un de ces cinq mots ».

Syntaxe

=REGEXMATCH(text, regular_expression)
  • text : Le texte à tester.
  • regular_expression : Le motif, sous forme de texte entre guillemets. Google Sheets utilise la syntaxe RE2.

REGEXMATCH renvoie TRUE si le motif correspond n'importe où dans le texte. Pour exiger que le texte entier corresponde, ancrez le motif avec ^ au début et $ à la fin.

Exemples de base

=REGEXMATCH("Commande n°4521", "\d+")

Renvoie TRUE : le texte contient des chiffres.

=REGEXMATCH(A2, "^INV-\d{4}$")

Renvoie TRUE uniquement si la cellule est exactement INV- suivi de quatre chiffres. Les ancres font échouer "INV-12345" ou " INV-1234".

=REGEXMATCH(A2, "(?i)urgent")

Correspondance insensible à la casse. Par défaut, la correspondance tient compte de la casse.

Les briques des expressions régulières

  • \d chiffre, \w lettre/chiffre/tiret bas, \s espace blanc (les versions en majuscules signifient l'inverse)
  • . n'importe quel caractère, + un ou plusieurs, * zéro ou plusieurs, ? facultatif
  • [abc] l'un de a, b ou c. [a-z] une lettre minuscule. [^0-9] tout sauf un chiffre
  • ^ début du texte, $ fin du texte
  • a|b a ou b
  • {3} exactement trois, {2,4} de deux à quatre
  • (?i) au début : ignorer la casse

Pour correspondre à un caractère spécial littéral comme . ou (, placez une barre oblique inverse devant.

Formules pratiques

Contient l'un de plusieurs mots

=REGEXMATCH(A2, "(?i)remboursement|rétrofacturation|litige")

Une seule formule remplace une chaîne de tests OR(SEARCH(...)).

Contient un mot d'une liste située dans des cellules

=REGEXMATCH(A2, TEXTJOIN("|", TRUE, $F$2:$F$10))

Réunit la liste sous la forme mot1|mot2|mot3, ce qui permet de maintenir les mots-clés dans des cellules.

Valider une adresse e-mail

=REGEXMATCH(A2, "^[\w.+-]+@[\w-]+\.[\w.-]+$")

Cela repère les fautes de frappe évidentes. C'est un contrôle de bon sens, pas un validateur d'e-mail complet.

Vérifier un format

=REGEXMATCH(TO_TEXT(A2), "^\d{5}$")

Un code postal à cinq chiffres. Utilisez TO_TEXT car REGEXMATCH attend du texte, et un nombre peut de toute façon perdre ses zéros initiaux.

=REGEXMATCH(A2, "^\+?\d[\d\s().-]{7,}$")

Un contrôle souple de numéro de téléphone.

Filtrer les lignes selon un motif

=FILTER(A2:C100, REGEXMATCH(A2:A100, "^INV-"))

REGEXMATCH fonctionne sur toute une plage dans FILTER, sans avoir besoin de ARRAYFORMULA.

Compter les correspondances

=SUMPRODUCT(--REGEXMATCH(A2:A100, "(?i)erreur"))

Compte le nombre de cellules qui contiennent erreur.

Mise en forme conditionnelle

Utilisez une règle à formule personnalisée comme =REGEXMATCH($A2, "(?i)en retard") pour mettre en évidence des lignes entières.

Marquer chaque ligne

=ARRAYFORMULA(IF(REGEXMATCH(A2:A, "(?i)vip"), "VIP", "Standard"))

Erreurs courantes

  • #VALUE! : « Expression régulière invalide ». Parenthèses ou crochets non équilibrés, ou fonctionnalités non gérées par RE2 comme les assertions avant (?=...) et les références arrière.
  • Toujours FALSE de façon inattendue. La casse (ajoutez (?i)), les espaces au début ou à la fin (utilisez TRIM), ou des caractères spéciaux non échappés comme ..
  • Toujours TRUE de façon inattendue. Le motif est trop large et n'est pas ancré. "\d+" correspond à tout texte contenant un chiffre. Ajoutez ^ et $.
  • Comportement étrange avec les nombres. Les nombres sont convertis en texte, donc une mise en forme comme 1 000 est perdue. Convertissez volontairement avec TO_TEXT.
  • Motif vide. REGEXMATCH(A2, "") correspond à tout.

REGEXMATCH, SEARCH, FIND ou tests de type « contient »

SEARCH et FIND donnent une position et ont besoin de ISNUMBER pour devenir un test oui/non. REGEXMATCH renvoie directement le oui/non et gère les alternatives, les ancres et les classes de caractères. Pour un simple « contient ce mot exact », ISNUMBER(SEARCH("mot", A2)) suffit. Utilisez REGEXMATCH dès que la règle a une forme ou des variantes.

Questions fréquentes

REGEXMATCH tient-elle compte de la casse ? Oui par défaut. Utilisez (?i) au début du motif.

Correspond-elle au texte entier ? Seulement si vous l'ancrez avec ^ et $. Sinon, n'importe quelle partie peut correspondre.

Peut-elle vérifier une plage ? Oui, dans FILTER ou ARRAYFORMULA.

Quelle variante d'expressions régulières ? RE2 : pas d'assertions avant, d'assertions arrière ni de références arrière dans le motif.

Fonctions associées

  • REGEXEXTRACT : Extrait le texte correspondant.
  • REGEXREPLACE : Remplace le texte correspondant.
  • FILTER : Renvoie les lignes qui remplissent une condition.
  • IF : Renvoie des valeurs différentes selon une condition.
  • SPLIT : Divise un texte au niveau d'un séparateur.

Articles associés

Newsletter

Plus d'exemples sur REGEXMATCH arrivent bientôt.

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