Loading search data...

Visual Code - Utiliser les expressions régulières dans les recherches/remplacements

Petit pense-bête pour utiliser les expressions régulières sur Visual Code. C’est une fonctionnalité que j’utilise fréquemment, mais pas assez pour que je me souvienne des motifs quand j’en ai besoin.

Quel est le moteur d’expression régulière ?

Les expressions régulières pourront être au format ECMAScript 5 ou PCRE2.

Ouvrir le widget recherche/remplacement

Pour lancer une recherche il suffit d’utiliser les touches [CTRL]+[F], qui ouvre ce widget :

vs code regex

Pour lancer une recherche avec remplacement il suffit d’utiliser les touches [CTRL]+[H], qui ouvre ce widget :

vs code regex

Pour activer les regex il faut cliquer sur .*

Saisir des expressions régulières

Je ne vais pas refaire le cours sur les expressions régulières perl, mais je vais prendre quelques pour piqûre de rappel. Vous pouvez vous entraîner avec le site regex101.com.

Pour rechercher un caractère dans un ensemble il suffit de le mettre entre []. Par exemple une lettre minuscule [a-z], une lettre minuscule ou majuscule [a-zA-Z], un nombre [0-9], etc. Vous pouvez ajouter d’autres caractères dans la liste.

| permet d’indiquer un ou : moi|toi|nous recherche les mots moi,toi,nous.

Les caractères spéciaux :

  • \n saut de ligne
  • \r retour chariot
  • \t tabulation
  • \f saut de page
  • \e échappement
  • ^ désigne le début d’une ligne
  • $ désigne la fin d’une ligne

Les raccourcis :

  • \w qui équivaut à [a-zA-Z0-9_]
  • \W à [^a-zA-Z0-9_] donc le contraire de \w
  • \s à [\r\n\t\f\v]
  • \S à tous les caractères autres que ceux de \s
  • \d à [0-9]
  • \D à tous les caractères non numériques. [^0-9]
  • . à n’importe quel caractère sauf retour à la ligne
  • \b recherche toutes les séquences \w dont la première ou/et la dernière lettre est la précédant.

Pour définir le nombre d’occurence d’un caractère ou d’un ensemble :

  • ? à zéro ou une occurrence d’une recherche
  • + à une ou plus d’occurence(s) d’une recherche.
  • * à zéro ou plus d’occurence(s) d’une recherche.
  • {i,j} idem ,mais on définit le nombre de répétitions mini et maxi.

La capture :

  • (...) permet de capturer le contenu afin de le réutiliser dans la zone remplacement avec le caractère $n. n étant l’index de l’occurence ().

Si vous recherchez un caractère parmi ceux qui sont réservé il faudra les échapper avec \ : $^.|?*+()[]{}

Quelques exemples

1) Dans un playbook Ansible vous avez oublié d’entourer d’espaces le nom d’une variable.

“{{variable}}” doit s’écrire “{{ variable }}”.

On doit ajouter des échappements puisque nous recherchons des {} :

  • Dans la zone recherche : \{\{(\w+)\}\}
  • Dans la zone remplacement : {{ $1 }}

2) Dans les descriptions de tâches, nous aimerions que la première lettre de celle-ci soit en Majuscule.

  • Dans la zone recherche : (\s+) - name: (\w+)
  • Dans la zone remplacement : $1 - name: \u$2

Dans la zone résultat, il suffit de précéder l’occurrence de la capture par \u. Pour mettre en minuscule \l. Pour le faire sur tout le mot \L ou \U.

Je compléterai ce billet avec d’autres exemples quand je les utiliserai.


Si vous avez apprécié cet article de blog, vous pouvez m'encourager à produire plus de contenu en m'offrant un café sur   Ko-Fi  . Vous pouvez aussi passer votre prochaine commande sur amazon, sans que cela ne nous coûte plus cher, via   ce lien  . Vous pouvez aussi partager le lien sur twitter ou linkedin via les boutons ci-dessous. Je vous remercie de votre soutien


Mots clés :

devops tutorials

Autres Articles


Commentaires: