Recherche de code Visual Studio et remplacement par des expressions régulières

116

Je veux utiliser « Rechercher et remplacer » dans le code Visual Studio pour changer chaque instance de <h1>content</h1>à l' #### contentintérieur d' un document à l' aide d' une expression régulière.

Comment puis-je y parvenir?

À M
la source
2
Doit-il être un regex find and replace? Pourriez-vous simplement remplacer <h4>par #### , puis remplacer </h4>par ''?
Brett East

Réponses:

190

Alors, votre objectif est de rechercher et de remplacer?
Selon le pdf des raccourcis clavier de Visual Studio officiel, vous pouvez appuyer Ctrl + Hsur Windows et Linux , ou ⌥⌘Fsur Mac pour activer l'outil de recherche et de remplacement:

Onglet Rechercher et remplacer de Visual Studio Code Si vous voulez désactiver le code, il vous suffit de le mettre <h1>en recherche et de le remplacer par ####.

Mais si vous voulez utiliser cette expression rationnelle à la place, vous pouvez l' activer dans l'icône: . *et utilisez l'expression régulière: <h1>(.+?)<\/h1>et remplacer à: #### $1.

Et comme @tpartee l'a suggéré, voici quelques informations supplémentaires sur le moteur de Visual Studio si vous souhaitez en savoir plus:

Mateus
la source
3
Visual Studio gérera l'expression régulière comme toutes les autres applications, la seule différence est ce que l'on appelle les saveurs d'expression régulière, qui est le `` compilateur '' de l'expression régulière et comment traitera-t-il l'expression. Habituellement, il est ignoré dans des réponses comme celles-ci parce que la plupart d'entre elles sont assez similaires, mais pour ceux qui veulent toujours le vérifier, je l'ai ajouté à la réponse
Mateus
2
La question concerne Visual Studio Code, et cette réponse concerne Visual Studio.
Dustin Wyatt
1
ou modifiez vos raccourcis clavier. Exemple: Par IDEA Keybindings ( marketplace.visualstudio.com/… ), vous pouvez utiliser: Ctrl + Maj + R pour Remplacer dans le chemin ou pour Rechercher dans le chemin: Ctrl + Maj + F
SL5net
6

Pour les débutants, je voulais ajouter à la réponse acceptée, car quelques subtilités ne m'étaient pas claires:

Pour rechercher et modifier du texte (pas complètement remplacer),

  1. Dans l'étape «Rechercher», vous pouvez utiliser des expressions régulières avec des «groupes de capture», par exemple votre recherche pourrait être la la la (group1) blah blah (group2), en utilisant des parenthèses.

  2. Et puis dans l'étape "Remplacer", vous pouvez vous référer aux groupes de capture via $1, $2etc.

Ainsi, par exemple, dans ce cas, nous pourrions trouver le texte pertinent avec juste <h1>.+?<\/h1>(pas de parenthèses), mais mettre entre parenthèses <h1>(.+?)<\/h1>nous permet de faire référence à la sous-correspondance entre eux comme $1dans l' étape de remplacement . Cool!

Remarques

  • Pour activer Regex dans le widget Rechercher, cliquez sur l' .*icône ou appuyez surCmd/Ctrl Alt R

  • $0 fait référence à tout le match

  • Enfin, la question d'origine indique que le remplacement doit avoir lieu "dans un document", vous pouvez donc utiliser le "Find Widget" ( Cmdou Ctrl+ F), qui est local au document ouvert, au lieu de "Search", qui ouvre une interface utilisateur plus grande et examine tous les fichiers du projet.

Tedskovsky
la source
0

Assurez-vous que Match Case est sélectionné avec Use Regular Expression pour que cela corresponde. [AZ] * Si la casse n'est pas sélectionnée, cela correspond à toutes les lettres.

David Morrow
la source
-3

Testez-le ici: Regex Storm

Exemple:

Regex: <option value=".*.">|</option>

Texte:

<option value="1">Something</option>

Résultat:

Quelque chose

JOSE DE JESUS ​​BECERRA VAZQUEZ
la source