Visual Sudio Code et les expressions régulières
Les expressions régulières (regex) sont un outil incroyable pour manipuler et rechercher du texte, en évitant des opérations répétitives. Ce guide vous aidera à utiliser efficacement des regex dans Visual Studio Code.
Quel est le moteur d’expression régulière ?
Visual Studio Code prend en charge deux principaux formats d’expressions
régulières, ECMAScript 5
et PCRE2
, qui vous permettent d’effectuer des
recherches optimisées dans votre code. Cela signifie que la plupart des syntaxes
standard dans d’autres langages ou outils fonctionnent également ici.
Ouvrir le Widget de Recherche/Remplacement
-
Pour une recherche simple :
- Raccourci :
CTRL + F
- Description : Cela ouvre une barre de recherche en haut de votre fichier actuel, vous permettant de trouver du texte spécifique facilement.
- Raccourci :
-
Pour une recherche avec remplacement :
- Raccourci :
CTRL + H
- Description : Cela vous permet non seulement de rechercher mais également de remplacer directement des occurrences dans le fichier.
- Raccourci :
-
Activer l’option Regex :
- Icône : Cliquez sur l’icône
.*
située dans la barre de recherche pour activer les expressions régulières.
- Icône : Cliquez sur l’icône
Concepts de Base des Expressions Régulières
Groupes de Caractères
Les groupes de caractères vous permettent de spécifier une collection de caractères que vous souhaitez faire correspondre :
[a-z]
: Correspond à n’importe quelle lettre minuscule.[A-Z]
: Correspond à n’importe quelle lettre majuscule.[0-9]
: Correspond à n’importe quel chiffre.[a-zA-Z0-9]
: Correspond à n’importe quelle lettre minuscule, majuscule ou chiffre.
Opérateurs de Connecteur
L’opérateur |
agit comme un “ou” logique :
- Exemple :
moi|toi|nous
va correspondre à “moi”, “toi”, ou “nous”.
Caractères Spéciaux
Ces caractères ont des significations particulières :
\n
: Nouveau saut de ligne.\r
: Retour chariot\t
: Tabulation horizontale.^
: Indique le début d’une ligne à partir du point de vue du moteur regex.$
: Indique la fin d’une ligne.
Raccourcis Pratiques
\w
: Correspond à n’importe quelle lettre, chiffre, ou underscore (_
).\W
: Correspond à n’importe quel caractère qui n’est pas couvert par\w
.\s
: Correspond à tout caractère d’espace (espaces, tabulations, retours à la ligne).\S
: Correspond à tout caractère qui n’est pas d’espace.\d
: Correspond à tout chiffre (0-9
).\D
: Correspond à tout caractère non numérique.
Quantificateurs
Quantificateurs vous permettent de spécifier combien de fois un élément peut apparaître.
?
: Zéro ou une occurrence.+
: Une ou plusieurs occurrences.*
: Zéro ou plusieurs occurrences.{n,m}
: Au moinsn
et au plusm
occurrences.
Capture et Réutilisation
Les parenthèses ( )
permettent de capturer des groupes de correspondances :
- L’utilisation de
(mot)
capturera “mot” et vous pourrez le référencer avec$1
dans la zone de remplacement,$2
pour la deuxième capture, etc.
Échappement
Si vous voulez chercher un caractère spécial littéralement, vous devrez
l’échapper avec \
:
- Exemple : Pour rechercher un point littéral, utiliser
\.
car.
correspond par défaut à n’importe quel caractère.
Exemples Pratiques
Exemple 1 : Espacer les Variables Ansible
Supposons que vous ayez écrit un playbook Ansible, et vous devez entourer les noms de variables de doubles accolades avec des espaces :
- Recherche :
\{\{(\w+)\}\}
- Remplacement :
\{\{ $1 \}\}
Ici, (\w+)
capture le nom de la variable et $1
insère ce nom avec des
espaces ajoutés autour dans les accolades.
Exemple 2 : Capitalisation des Descriptions de Tâches
Pour assurer que la description des tâches commence par une majuscule :
- Recherche :
(\s+)- name: (\w+)
- Remplacement :
$1- name: \u$2
L’utilisation de \u$2
met la première lettre du deuxième groupe capturé en
majuscule. Le préfixe \l
pourrait être utilisé pour minuscule, tandis que \U
et \L
mettent en majuscules ou minuscules l’intégralité du mot.
Pour continuellement améliorer vos connaissances, n’hésitez pas à consulter des outils en ligne comme regex101.com ↗ qui permettent de tester et comprendre les regex à travers des exemples illustratifs.
Ce guide peut être étendu avec des cas d’usages spécifiques selon vos besoins futurs.