Fonction Excel : REGEX.EXTRAIRE

La fonction REGEX.EXTRAIRE extrait une ou plusieurs parties d'un texte en fonction d'une expression régulière.

Utilisation :

=REGEX.EXTRAIRE(texte; regex)

ou :

=REGEX.EXTRAIRE(texte; regex; retour, casse)

Si vous ne savez pas ce qu'est une expression régulière ou si vous ne savez pas comment en écrire une, commencez tout d'abord par le tutoriel complet qui accompagne la fonction REGEX.TEST avant de poursuivre.

Extraire le premier mot trouvé

La fonction REGEX.EXTRAIRE retourne ici le premier mot trouvé parmi les 2 possibilités ("amusant" ou "terrifiant") :

=REGEX.EXTRAIRE(A2;"amusant|terrifiant")

excel fonction regex extraire mot

Les arguments facultatifs

Le troisième argument vous permet de préciser le type de retour attendu :

Par exemple, si on entre la valeur 1 au dernier exemple, celui-ci retourne un tableau horizontal avec toutes les correspondances trouvées :

=REGEX.EXTRAIRE(A2;"amusant|terrifiant";1)

excel fonction regex extraire mots

Si vous ne souhaitez pas tenir compte de la casse, entrez la valeur 1 en quatrième argument (par défaut la valeur est 0, elle tient compte de la casse).

Extraire une référence

La fonction REGEX.EXTRAIRE retourne ici une partie du numéro de référence correspondant à l'expression "[A-Z]\d{2,}" (soit une lettre en majuscule suivie de 2 chiffres ou plus) :

=REGEX.EXTRAIRE(A2;"[A-Z]\d{2,}")

excel fonction regex extraire reference

Extraire un nombre

La regex "\d+" va extraire ici tous les chiffres jusqu'à tomber sur un caractère qui n'en est pas un :

=REGEX.EXTRAIRE(A2;"\d+")

excel fonction regex extraire numeros

Si vous entrez la valeur 1 en troisième argument, vous obtiendrez un tableau horizontal avec les différents nombres extraits :

=REGEX.EXTRAIRE(A2;"\d+";1)

excel fonction regex extraire nombres tableau

Extraire à la fin

Pour extraire les chiffres à la fin du texte, ajoutez un $ à la fin de la regex :

=REGEX.EXTRAIRE(A2;"\d*$")

excel fonction regex extraire numeros fin

Extraire plusieurs parties

Pour extraire différents groupes de chiffres, ajoutez des parenthèses sur chaque partie du texte à extraire. Dans ce cas nous allons par exemple extraire uniquement les groupes 2 et 3 :

=REGEX.EXTRAIRE(A2;"\d+-(\d+)-(\d+)";2)

excel fonction regex extraire plusieurs chaines

Vous pouvez voir ici que les 2 groupes à capturer ont été mis entre () et que la valeur 2 a été passée en troisième argument de la fonction pour tenir compte uniquement des groupes à capturer.

Extraction complexe

Pour extraire une valeur dans des données qui ne sont pas régulières du tout, recherchez tout d'abord une constante (l'objectif ici est d'extraire le prix) :

excel extraction complexe regex extraire

Vous pouvez voir que le prix est toujours précédé du mot "prix".

La formule suivante permet d'extraire le prix :

=REGEX.EXTRAIRE(A2;"Prix\W*(\d+(?:\.\d{1,2})?)";2;1)

Pour mieux comprendre :

excel fonction regex extraire extraction complexe

Une autre option pour ne pas avoir à s'inquiéter des parenthèses capturantes (et laisser le troisième argument à sa valeur par défaut) consiste à utiliser une assertion :

=REGEX.EXTRAIRE(A2;"(?<=Prix\W{0,3})\d+(\.\d{1,2})?";0;1)

excel fonction regex extraire extraction assertion

Référence arrière

La formule suivante va rechercher le premier nombre présent 2 fois de suite dans la liste de nombres en utilisant une référence arrière :

=REGEX.EXTRAIRE(A2;"(\d+)\W+\1";2)

excel fonction regex extraire reference arriere