We recommend using Visual Studio 2017

Utilizzo delle espressioni regolari in Visual Studio

 

Per la documentazione più recente di Visual Studio 2017 RC, vedere Documentazione di Visual Studio 2017 RC.

Visual Studio usa espressioni regolari di .NET Framework per trovare e sostituire il testo. Per altre informazioni sulle espressioni regolari di .NET, vedere Espressioni regolari di .NET Framework.

Prima di Visual Studio 2012, Visual Studio usava la sintassi personalizzata di espressione regolare nelle finestre Trova e sostituisci. Per una spiegazione su come convertire alcuni dei simboli di espressione regolare di uso più comune nelle versioni .NET, vedere Uso delle espressioni regolari in Visual Studio.

System_CAPS_ICON_tip.jpg Suggerimento

Nei sistemi operativi Windows, la maggior parte delle righe termina con "\r\n" (un ritorno a capo seguito da una nuova riga). Questi caratteri non sono visibili, ma sono presenti nell'editor e passati al servizio delle espressioni regolari di.NET.

System_CAPS_ICON_tip.jpg Suggerimento

Per informazioni sulle espressioni regolari usate nei criteri di sostituzione, vedere Sostituzioni. Per usare un gruppo Capture numerato, la sintassi è $1 per specificare il gruppo numerato e (x) per specificare il gruppo in questione. Ad esempio, l'espressione regolare raggruppata (\d)([a-z]) trova quattro corrispondenze nella stringa seguente: 1a 2b 3c 4d. La stringa di sostituzione z$1 converte tale stringa in z1 z2 z3 z4.

Ecco alcuni esempi.

ScopoEspressioneEsempio
Trovare la corrispondenza con qualsiasi carattere singolo (tranne un'interruzione di riga).a.o consente la ricerca di "aro" in "around" e "abo" in "about", ma non di "acro" in "across".
Trovare la corrispondenza con zero o più occorrenze dell'espressione precedente (trovare quanti più caratteri corrispondenti possibile)*a*r consente la ricerca di "r" in "rack", "ar" in "ark" e "aar" in "aardvark"
Trovare la corrispondenza con qualsiasi carattere zero o più volte (carattere jolly *).*c.*e trova “cke” in “racket”, “comme” in “comment” e “code” in “code”
Trovare la corrispondenza con una o più occorrenze dell'espressione precedente (trovare quanti più caratteri corrispondenti possibile)+e.+e trova "eede" in "feeder" ma non "ee".
Trovare la corrispondenza con qualsiasi carattere una o più volte (carattere jolly ?).+e.+e trova "eede" in "feeder" ma non "ee".
Trovare la corrispondenza a zero o più occorrenze dell'espressione precedente (trovare quanti meno caratteri corrispondenti possibile)*?e.*?e trova "ee" in "feeder" ma non "eede".
Trovare la corrispondenza a una o più occorrenze dell'espressione precedente (trovare quanti meno caratteri corrispondenti possibile)+?e.+?e trova "ente" e "erprise" in "enterprise", ma non l'intera parola "enterprise".
Ancorare la stringa di corrispondenza all'inizio di una riga o stringa^^ car trova la parola "car" solo quando viene visualizzata all'inizio di una riga.
Ancorare la stringa di corrispondenza alla fine di una riga o stringa\r?$End\r?$ trova "end" solo quando è visualizzato alla fine di una riga.
Trovare la corrispondenza con qualsiasi carattere singolo in un set[abc]b[abc] trova "ba", "bb" e "bc".
Trovare la corrispondenza con qualsiasi carattere in un intervallo di caratteri[a-f]be[n-t] trova "bet" in "between", "ben" in "beneath" e "bes" in "beside", ma non "below".
Acquisire e numerare in modo implicito l'espressione racchiusa tra parentesi()([a-z])X\1 trova "aXa" e "bXb", ma non "aXb". " . “\1” si riferisce al primo gruppo di espressioni “[a-z]”.
Invalidare una corrispondenza(?!abc)real (?!ity) trova "real" in "realty" e "really", ma non in "reality". Trova anche il secondo "real" (ma non il primo "real") in "realityreal".
Trovare la corrispondenza con qualsiasi carattere non presente in un determinato set di caratteri[^abc]be[^n-t] trova "bef" in "before", "beh" in "behind" e "bel" in "below", ma non "beneath".
Trovare la corrispondenza dell'espressione prima o dopo il simbolo.|(caffè|latte) macchiato trova "caffè macchiato" e "latte macchiato".
Includere il carattere che segue la barra rovesciata usando una sequenza di escape\\^ trova il carattere ^.
Specificare il numero di occorrenze del gruppo o del carattere precedente{x}, dove x è il numero di occorrenzex(ab){2}x trova "xababx" e x(ab){2,3}x trova "xababx" e "xabababx" ma non "xababababx".
Trovare la corrispondenza con un testo in una classe di caratteri Unicode, dove "X" è il numero Unicode. Per altre informazioni sulle classi di caratteri Unicode, vedere

 Unicode Standard 5.2 Character Properties.
\p{X}\p{Lu} trova "T" e "D" in "Thomas Doe".
Trovare la corrispondenza con un confine di parola\b (all'esterno di una classe di caratteri \b specifica un confine di parola e all'interno di una classe di caratteri specifica un backspace).\bin trova "in" in "inside" ma non "pinto".
Trovare la corrispondenza con un'interruzione di riga (cioè un ritorno a capo seguito da una nuova riga).\r? \nEnd\r?\nBegin trova "End" e "Begin" solo quando "End" è l'ultima stringa in una riga e "Begin" è la prima stringa nella riga successiva.
Trovare la corrispondenza con qualsiasi carattere alfanumerico\wa\wd trova "add" and "a1d", ma non "a d".
Trovare la corrispondenza con qualsiasi spazio vuoto.(?([^\r\n])\s)Public\sInterface trova la frase "Public Interface".
Trovare la corrispondenza con qualsiasi carattere numerico\d\d trova "3" in "3456", "2" in 23" e "1" in "1".
Trovare la corrispondenza con un carattere Unicode\uXXXX dove XXXX specifica il valore del carattere Unicode.\u0065 trova il carattere "e".
Trovare la corrispondenza con un identificatore\b(_\w+|[\w-[0-9_]]\w*)\bTrova "type1" ma non &type1" o "#define".
Trovare la corrispondenza con una stringa tra virgolette((\".+? \")|('.+?'))Trova qualsiasi stringa racchiusa tra virgolette singole o doppie.
Trovare la corrispondenza con un numero esadecimale\b0[xX]([0-9a-fA-F])\bTrova "0xc67f", ma non "0xc67fc67f".
Trovare la corrispondenza con numeri interi e decimali\b[0-9]*\.*[0-9]+\bTrova "1.333".

Ricerca e sostituzione di testo

Mostra: