Cours
Vous est-il déjà arrivé de devoir uniformiser une liste de numéros de téléphone avec des formats différents ? Ou d’extraire des mots-clés à partir de champs de texte libre ? Place aux RegEx ! Les RegEx, diminutif d’expressions régulières, sont des motifs puissants et flexibles utilisés pour faire correspondre des chaînes au sein de blocs de texte. Dans cet article, nous verrons la syntaxe regex la plus courante, comment activer les regex dans Excel et, enfin, comment les utiliser efficacement.
Qu’est-ce qu’une expression régulière ?
Les expressions régulières, souvent abrégées en « regex » ou « regexp », permettent de définir un motif de recherche utilisable pour diverses tâches de manipulation de texte : recherche, analyse (parsing) et/ou remplacement. Elles sont largement utilisées en programmation, dans les éditeurs de texte et d’autres logiciels pour tout ce qui implique de la correspondance de motifs. La variante (ou syntaxe) de regex dans Excel repose sur le moteur d’expressions régulières .NET.
Expressions régulières courantes
On peut regrouper les expressions régulières selon leurs caractéristiques. Voici les éléments les plus courants que vous rencontrerez.
Caractères littéraux
Les expressions régulières peuvent contenir des caractères littéraux qui se correspondent eux-mêmes. Par exemple, la regex « hello » ne correspondra qu’à la chaîne « hello » exactement.
Métacaractères
Les expressions régulières incluent aussi des métacaractères, qui ont une signification particulière. Parmi les plus courants :
.(point) : correspond à n’importe quel caractère unique sauf un saut de ligne.*: correspond à zéro occurrence ou plus du caractère ou groupe précédent.+: correspond à une ou plusieurs occurrences du caractère ou groupe précédent.?: correspond à zéro ou une occurrence du caractère ou groupe précédent.|(barre verticale) : agit comme un OU logique et permet de spécifier des alternatives.()(parenthèses) : regroupe des caractères ou des sous‑motifs.[](crochets) : définit une classe de caractères, pour faire correspondre un caractère parmi un ensemble donné.^(accent circonflexe) : correspond au début d’une ligne ou d’une chaîne.$: correspond à la fin d’une ligne ou d’une chaîne.\(antislash) : échappe un métacaractère pour le faire correspondre littéralement.
Classes de caractères
Les classes de caractères en expressions régulières sont des notations spéciales qui permettent de faire correspondre un caractère parmi un ensemble. Elles simplifient les motifs en offrant un moyen concis d’indiquer un groupe de caractères à accepter. On utilise des crochets [...] pour définir une classe de caractères. Par exemple, [aeiou] correspond à n’importe quelle voyelle. [A-Z] correspond à n’importe quelle lettre majuscule.
Quantificateurs
Les quantificateurs précisent combien de fois un motif, un caractère ou une classe de caractères doit apparaître dans la chaîne cible pour obtenir une correspondance. Autrement dit, ils indiquent le nombre de répétitions d’un caractère ou d’un groupe. Par exemple, a{3} correspond exactement à trois « a » consécutifs. ab? correspond à « a » ou « ab ».
Ancres
Les ancres sont des caractères spéciaux qui ne correspondent à aucun caractère de la chaîne. Elles correspondent à une position avant, après ou entre des caractères. Elles servent à garantir que le motif regex apparaît à un endroit précis dans le texte. Par exemple, ^ ancre le motif au début de la chaîne, et $ l’ancre à la fin.
Modificateurs
Les modificateurs sont des indicateurs qui changent la façon dont le moteur regex interprète le motif. Ils permettent d’ajuster le comportement de la recherche, pour plus de souplesse et de contrôle. Ils peuvent influer sur la sensibilité à la casse, la gestion du mode multiligne ou l’interprétation des caractères spéciaux. Par exemple, i rend le motif insensible à la casse, et g l’applique globalement afin de trouver toutes les occurrences dans l’entrée.
Applications des expressions régulières dans Excel
Les RegEx sont utiles dans de nombreux cas :
Validation des données
Dans la plupart des cas, vous devez valider les données pour vous assurer que vous analysez la bonne information. L’exemple classique : les numéros de téléphone. Aux États‑Unis, le format standard est (###) ###-####. Mais ils peuvent aussi apparaître ainsi : ###-###-####, (+#) ### ### ####, ##########, etc. Les RegEx permettent de vérifier que les informations présentes sont bien des numéros de téléphone. L’expression régulière suivante renvoie une correspondance sur les numéros à 10 chiffres, avec un indicatif pays optionnel de 1 à 2 chiffres : (\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$.
Extraction de texte
Les longues phrases sont souvent difficiles à analyser avec un tableur classique. Pour extraire des mots‑clés précis, vous pouvez utiliser des RegEx. Par exemple, pour extraire des titres de livres encadrés par des apostrophes dans la transcription d’un entretien, on peut utiliser l’expression : '(.*?)'.
Manipulation de texte
Au‑delà de l’extraction, vous pouvez aussi transformer et standardiser les informations pour vos reportings. Supposons que nous souhaitions extraire les cinq premiers chiffres des codes postaux américains (ZIP). Nous pouvons remplacer toutes les occurrences d’un champ contenant des ZIP en utilisant l’expression ^\d{5}.
Tokenisation
La tokenisation consiste à découper un texte en jetons ou en mots individuels. Les motifs regex peuvent définir des règles de découpage. Par exemple, utilisez \s+ pour scinder le texte sur les espaces blancs ou \W+ pour scinder sur les caractères non alphanumériques comme la ponctuation.
Pour d’autres motifs utiles, consultez notre cheat sheet Regular Expression in Python.
Apprendre les bases d'Excel
Utiliser les RegEx dans Excel
Bien qu’Excel ne prenne pas en charge les RegEx nativement, vous pouvez les activer en écrivant votre propre fonction via un script VBA (sous Windows) ou en installant des compléments (sur Mac). Voyons comment activer une fonction regex pour extraire du texte depuis une colonne dans Excel.
Pour Windows
Pour commencer, appuyez sur Alt+F11 pour ouvrir l’éditeur Visual Basic. Vous pouvez aussi y accéder via Outils > Macro > Éditeur Visual Basic. Puis cliquez sur Insertion > Module.
Collez la fonction suivante dans le module :
Public Function CustomRegExpExtract(inputText As String, regexPattern As String, Optional instanceNumber As Integer = 0, Optional matchCase As Boolean = True) As Variant
Dim textMatches() As String
Dim matchesIndex As Integer
Dim regex As Object
Dim matches As Object
On Error GoTo ErrHandler
CustomRegExpExtract = ""
' Create a regular expression object
Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = regexPattern
regex.Global = True
regex.MultiLine = True
' Set case sensitivity
If matchCase Then
regex.IgnoreCase = False
Else
regex.IgnoreCase = True
End If
' Execute the regex pattern on the input text
Set matches = regex.Execute(inputText)
If matches.Count > 0 Then
If instanceNumber = 0 Then
' If instanceNumber is 0, return all matches in an array
ReDim textMatches(matches.Count - 1, 0)
For matchesIndex = 0 To matches.Count - 1
textMatches(matchesIndex, 0) = matches.Item(matchesIndex)
Next matchesIndex
CustomRegExpExtract = textMatches
Else
' If instanceNumber is specified, return the match at that instance
CustomRegExpExtract = matches.Item(instanceNumber - 1)
End If
End If
Exit Function
ErrHandler:
' Handle errors by returning an error value
CustomRegExpExtract = CVErr(xlErrValue)
End Function
' Modified from an original script by Patrick Matthews
Enregistrez la fonction et revenez à la feuille de calcul. Enregistrez ensuite le classeur en tant que fichier activé pour les macros, avec l’extension .xlsm.
Utiliser la fonction dans une feuille Excel
Après avoir activé les macros dans votre classeur, vous pouvez utiliser la fonction CustomRegExpExtract comme une fonction classique d’Excel pour analyser des motifs complexes, où :
inputTextest la chaîne d’origine à analyser ;
regexPatternest le motif d’expression régulière utilisé pour analyserinputText;
instanceNumberrenvoie par défaut toutes les occurrences du motif, mais vous pouvez indiquer un entier pour préciser le rang d’occurrence à retourner ; et
matchCaseprécise s’il faut tenir compte de la casse pendant la recherche (TRUE ou omis) ou l’ignorer (FALSE).
Imaginons que nous souhaitions extraire des numéros de téléphone depuis un champ. Nous pouvons saisir le motif regex dans n’importe quelle cellule (dans l’exemple ci‑dessous, il se trouve en A2). En A6, votre chaîne libre d’exemple : « Sophia, 1111111111 ». En B6, nous tapons =CustomRegExpExtract(A6,$A$2). La fonction extrait le numéro en comparant la chaîne au motif regex en A2 et renvoie « 1111111111 », comme prévu.

Pour Mac OS
Malheureusement, Mac OS ne reconnaît pas la bibliothèque MS VBScript Regular Expressions 5.5. Pour activer la recherche de motifs complexes dans Excel sur Mac, deux options : utiliser les filtres avancés ou installer des compléments.

Utiliser les filtres avancés
Les filtres avancés d’Excel permettent d’effectuer des opérations de filtrage complexes à partir de plusieurs critères. Cette fonctionnalité est particulièrement utile avec de grands jeux de données. Voici comment les utiliser :
- Préparer vos données : assurez‑vous que vos données sont présentées sous forme de tableau avec des en‑têtes clairs.
- Créer une zone de critères : créez une zone distincte dans la feuille pour définir les critères. Elle doit reprendre les mêmes en‑têtes que les colonnes à filtrer. Sous ces en‑têtes, indiquez les critères. Vous pouvez saisir plusieurs critères sous le même en‑tête pour une logique « OU », ou sur des lignes séparées pour une logique « ET ».
- Sélectionner les données : cliquez sur une cellule de votre jeu de données, ou sélectionnez toute la plage à filtrer.
- Configurer le filtre : cliquez sur l’onglet Données du ruban puis sur l’option Filtre avancé. Cliquez sur Avancé dans le groupe Trier et filtrer. Dans la boîte de dialogue, choisissez de filtrer la liste sur place ou de copier le résultat ailleurs. Indiquez la plage de liste (vos données) et la zone de critères (vos conditions). Cliquez sur OK pour appliquer le filtre.
Supposons que vous ayez un jeu de données avec les colonnes Name, Age, City. Vous souhaitez n’afficher que les personnes de plus de 30 ans à New York, ou toute personne à Los Angeles. Votre zone de critères pourrait ressembler à ceci :
|
Name |
Age |
City |
|
>30 |
New York |
|
|
Los Angeles |
Installer des compléments
- Kutools for Excel : Kutools est un complément complet qui inclut de nombreuses fonctionnalités, dont la recherche/remplacement avec regex. Il ajoute un nouvel onglet au ruban Excel avec un large éventail d’outils, y compris des fonctions regex.
- RegEx Find/Replace : ce complément pour Excel permet de rechercher et remplacer du texte à l’aide d’expressions régulières. Il s’intègre à Excel et offre une fonction de recherche/remplacement plus avancée que l’option native.
- PowerGREP : bien que n’étant pas un complément Excel à proprement parler, PowerGREP peut travailler avec des fichiers Excel. C’est un outil grep puissant pour Windows qui permet des opérations regex complexes sur des fichiers texte et binaires. Il s’agit plutôt d’une application autonome, mais elle peut être utilisée avec Excel pour un traitement regex avancé. Son prix est élevé : une licence utilisateur coûte 159 $ et grimpe à 5 300 $ pour 100 utilisateurs.
Certains compléments sont accessibles directement dans Excel via l’onglet Insertion > Obtenir des compléments.
D’autres doivent être téléchargés depuis une source externe ; suivez alors leurs instructions d’installation.
Quelques points d’attention :
- Compatibilité : vérifiez la compatibilité du complément avec votre version d’Excel et votre système d’exploitation.
- Sécurité : ne téléchargez et n’installez des compléments que depuis des sources fiables.
- Besoins fonctionnels : identifiez les tâches regex spécifiques à réaliser et choisissez le complément le plus adapté.
Conclusion
Dans la plupart des cas, les fonctions natives comme TROUVE, CHERCHE et REMPLACER couvrent 90 % des besoins de manipulation de texte dans Excel. Pour les 10 % restants, lorsqu’il s’agit de motifs plus complexes, les regex rendent d’immenses services. Pour en savoir plus sur l’application des expressions régulières dans des langages populaires, découvrez nos cours Regular Expressions in Python et Intermediate Regular Expressions in R.
Pour aller plus loin avec Excel, découvrez notre parcours de compétences Excel Fundamentals, qui vous guide à travers les compétences essentielles pour maîtriser l’outil.
Faites progresser votre carrière avec Excel
Acquérir les compétences nécessaires pour optimiser Excel - aucune expérience n'est requise.

Analyste de données le jour, conteur la nuit. J'aime utiliser mes connaissances pour combler les lacunes en matière de maîtrise des données et aider les nouveaux arrivants à s'intégrer dans ce domaine. Ma philosophie est d'apprendre tous les jours, ne serait-ce que pendant 5 minutes !
