Ce parfum de Regex n'Code de Visual Studio utiliser?
Essayer de rechercher-remplacer dans le Code de Visual Studio, je trouve que son Regex saveur est différente de plein de Visual Studio. Plus précisément, j'ai essayer de déclarer un nom de groupe avec string (?<p>[\w]+)
qui fonctionne dans Visual Studio, mais pas dans le Code de Visual Studio. Il va se plaindre à l'erreur Invalid group
.
En dehors de la résolution de ce problème spécifique, je suis à la recherche d'informations sur la saveur de Regexes dans le Code de Visual Studio et où trouver de la documentation à ce sujet, si je peux aider moi-même avec toutes les autres questions je pourrais tomber sur.
Complète de Visual Studio .NET des Expressions Régulières comme l'a documenté ici. Ce lien est mentionné que la documentation pour VS Code ailleurs sur Stackoverflow, mais il ne l'est pas.
- VSCode est à l'aide de JavaScript moteur d'expressions régulières, mais ce n'est pas la même. Vous ne pouvez pas utiliser nommé la capture de groupes.
- Il n'y a pas de documentation spécifique sur l'expression régulière utilisée dans VSCode. Toutefois, si vous avez un coup d'oeil à la code source, vous verrez beaucoup de code JS autour. Si vous essayez d'utiliser lookbehinds, vous obtenez un motif non valide erreur, alors que lookaheads travail. Et la JS regex saveur est le seul moteur d'expressions régulières qui traite de l'
[^]
motif correspondant à un symbole. Donc, il est clair qu'il est JS moteur d'expressions régulières. - Quel est votre vrai problème? Note vous ne devez pas le nom de capturer les groupes d'habitude, c'est juste un "avantage".
- "La JS regex saveur"? Peut-être que je suis juste pas au courant il ya toute sorte de norme dans le monde. Est-il? J'ai tendance à utiliser des groupes nommés toujours - je suis en train d'écrire .NET code, ou d'utiliser à plein VS 95% du temps quand j'utilise regexes...je dois être gâté 😉
- Le standard est ECMAScript 5.
- OK. Eh bien, si vous êtes sûr de vous et que vous avez quelques liens vers des docs vous pouvez répondre. Je vais upvote. Ne pense pas que l'ECMAScript spec est un excellent lien si c'est le seul que bien que.
- Alors, quel genre de réponse attendez-vous? Tout ce que j'ai posté ci-dessus + lien vers la JS regex description de la syntaxe? Comme MDN de référence?
Vous devez vous connecter pour publier un commentaire.
Rouille Regex dans la fonction Rechercher/Remplacer dans les Fichiers de la barre latérale
Rob Lourens de MSFT a écrit que la recherche de fichier utilise Rouille regex. Le La rouille de la langue de la documentation décrit la syntaxe.
JavaScript Regex dans la fonction Rechercher/Remplacer dans le Fichier Widget
Alexandru Dima de MSFT a écrit que le trouver widget utilise JavaScript regex. Comme Wicktor commenté, ECMAScript 5 de la documentation décrit la syntaxe. Le fait de la MDN JavaScript Expression Régulière Guide.
Test de la Différence
Le trouver dans les fichiers de la barre latérale ne prend pas en charge
(?=foobar)
alors que le trouver dans le fichier widget prend en charge que l'anticipation de la syntaxe.Concernant la fonction Rechercher/Remplacer avec des Groupes
À rechercher/remplacer avec des groupes, utilisez des parenthèses
()
de groupe et$1
,$2
,$3
,$n
à remplacer.Ici est un exemple.
Avant:
Après:
Shaun réponse est toujours correct, mais pour ajouter une mise à jour, récemment VS Code ajouté l'option de s'inscrire à l'aide de la Perl base de PCRE2 moteur. Vous pouvez l'activer par le biais de vos paramètres de config.
Cela vous permet d'effectuer plus avancé regex opérations comme lookaheads et des références arrières. Mais comme a noté ci-dessous, l'expression régulière doit encore être JavaScript valide regex.
Et pour un bonus si vous vous retrouviez ici pour essayer de le faire en ligne multi recherches, VS Code récemment ajouté que la fonction ainsi!