Ricerca codice di Visual Studio e sostituzione con espressioni regolari


116

Voglio usare "Cerca e sostituisci" in Visual Studio Codice di cambiare ogni istanza di <h1>content</h1>a #### contentall'interno di un documento utilizzando un'espressione regolare.

Come posso farlo?


2
Deve essere una regex trova e sostituisci? Potresti semplicemente sostituire <h4>con #### e poi sostituire </h4>con ''?
Brett East

Risposte:


190

Quindi, il tuo obiettivo è cercare e sostituire?
Secondo il pdf delle scorciatoie da tastiera di Visual Studio ufficiale, puoi premere Ctrl + Hsu Windows e Linux o ⌥⌘Fsu Mac per abilitare lo strumento di ricerca e sostituzione:

Scheda Cerca e sostituisci del codice di Visual Studio Se intendi disabilitare il codice, devi solo metterlo <h1>nella ricerca e sostituirlo con#### .

Ma se invece vuoi usare questa regex, puoi abilitarla nell'icona: . *e usare la regex: <h1>(.+?)<\/h1>e sostituirla con:#### $1 .

E come suggerito da @tpartee , ecco alcune ulteriori informazioni sul motore di Visual Studio se desideri saperne di più:


3
Visual Studio gestirà la regex come ogni altra applicazione, l'unica differenza sono i cosiddetti sapori regex, che è il 'compilatore' della regex e come tratterà l'espressione. Di solito, viene ignorato in risposte come queste perché la maggior parte di esse sono abbastanza simili, ma per coloro che vogliono ancora verificarlo, l'ho aggiunto alla risposta
Mateus

2
La domanda riguarda Visual Studio Code e questa risposta riguarda Visual Studio.
Dustin Wyatt

1
o cambia le tue associazioni di tasti. Esempio: con le associazioni di tasti IDEA ( marketplace.visualstudio.com/… ) potresti usare: Ctrl + Maiusc + R per Sostituisci nel percorso o per Trova nel percorso: Ctrl + Maiusc + F
SL5net

6

Per i principianti, volevo aggiungere alla risposta accettata, perché un paio di sottigliezze non mi erano chiare:

Per trovare e modificare il testo (non sostituire completamente),

  1. Nel passaggio "Trova", puoi utilizzare regex con "cattura di gruppi", ad esempio la tua ricerca potrebbe essere la la la (group1) blah blah (group2), utilizzando le parentesi.

  2. Quindi, nel passaggio "Sostituisci", puoi fare riferimento ai gruppi di acquisizione tramite $1, $2ecc.

Quindi, ad esempio, in questo caso potremmo trovare il testo pertinente con solo <h1>.+?<\/h1>(senza parentesi), ma mettere tra parentesi <h1>(.+?)<\/h1>ci permette di fare riferimento alla sotto-corrispondenza tra di loro come $1nel passaggio di sostituzione . Freddo!

Appunti

  • Per attivare Regex nel Find Widget, fare clic .*sull'icona o premereCmd/Ctrl Alt R

  • $0 si riferisce all'intera partita

  • Infine, la domanda originale afferma che la sostituzione deve avvenire "all'interno di un documento", quindi puoi utilizzare "Trova widget" ( Cmdo Ctrl+ F), che è locale per il documento aperto, invece di "Cerca", che apre un'interfaccia utente più grande e cerca in tutti i file nel progetto.


0

Assicurati che Maiuscole / minuscole sia selezionato con Usa espressione regolare in modo che corrisponda. [AZ] * Se le maiuscole / minuscole non sono selezionate, corrispondono a tutte le lettere.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.