En essayant de rechercher-remplacer dans Visual Studio Code, je trouve que sa saveur Regex est différente de Visual Studio complet. Plus précisément, j'essaie de déclarer un groupe nommé avec string (?<p>[\w]+)
qui fonctionne dans Visual Studio mais pas dans Visual Studio Code. Il se plaindra de l'erreur Invalid group
.
En plus de résoudre ce problème spécifique, je recherche des informations sur la saveur des expressions régulières dans Visual Studio Code et où trouver de la documentation à ce sujet, afin que je puisse m'aider avec toutes les autres questions sur lesquelles je pourrais tomber.
Visual Studio complet utilise les expressions régulières .NET comme décrit ici . Ce lien est mentionné dans la documentation de VS Code ailleurs sur Stackoverflow, mais ce n'est pas le cas.
[^]
motif comme correspondant à n'importe quel symbole. Donc, il est clair qu'il s'agit du moteur JS regex.Réponses:
Rust Regex dans la barre latérale Rechercher / Remplacer dans les fichiers
Rob Lourens de MSFT a écrit que la recherche de fichiers utilise l'expression régulière Rust. La documentation du langage Rust décrit la syntaxe.
JavaScript Regex dans le widget Rechercher / Remplacer dans un fichier
Alexandru Dima de MSFT a écrit que le widget de recherche utilise l'expression régulière JavaScript. Comme l'a commenté Wicktor, la documentation d'ECMAScript 5 décrit la syntaxe. Il en va de même pour le Guide des expressions régulières JavaScript MDN .
Testez la différence
La barre latérale de recherche dans les fichiers ne prend pas en charge
(?=foobar)
tandis que le widget de recherche dans le fichier prend en charge cette syntaxe d'anticipation.Concernant la recherche / remplacement par des groupes
Pour trouver / remplacer par des groupes, utilisez des parenthèses
()
pour regrouper et$1
,$2
,$3
,$n
pour remplacer.Voici un exemple.
Avant:
Après:
la source
La réponse de Shaun est toujours correcte, mais pour ajouter une mise à jour, VS Code a récemment ajouté la possibilité de choisir d'utiliser le moteur PCRE2 basé sur Perl . Vous pouvez l'activer via la configuration de vos paramètres.
Cela vous permet d'effectuer des opérations regex plus avancées telles que les lookaheads et les backreferences . Mais comme indiqué ci-dessous, l'expression régulière doit toujours être une expression régulière JavaScript valide .
Et pour un bonus si vous avez fini par essayer de faire des recherches sur plusieurs lignes, VS Code a récemment ajouté cette fonctionnalité !
la source