Condividi tramite


Utilizzo delle espressioni regolari in Visual Studio

Visual Studio utilizza le espressioni regolari di .NET Framework per cercare e sostituire testo.In Visual Studio 2010 e nelle versioni precedenti, Visual Studio ha utilizzato una sintassi di espressione regolare personalizzata nelle finestre Trova e sostituisci.In questo argomento viene illustrato come convertire nelle versioni di .NET alcuni dei simboli di espressione regolare personalizzati di uso più comune.

SuggerimentoSuggerimento

Nei sistemi operativi Windows, la maggior parte delle righe terminano 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 .NET.

Per ulteriori informazioni, vedere Espressioni regolari di .NET Framework.

SuggerimentoSuggerimento

Per ulteriori informazioni sulle espressioni regolari utilizzate nei modelli di sostituzione, vedere Sostituzioni nelle espressioni regolari.Per utilizzare un gruppo di acquisizione 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>. La sintassi equivalente in Visual Studio 2010 è {:z}([a-z]) per l'espressione regolare raggruppata e z\1 per la stringa di sostituzione.

Confronto di espressioni regolari di .NET Framework

È possibile convertire espressioni regolari dalla versione utilizzata nelle versioni precedenti di Visual Studio in espressioni regolari di .NET Framework tramite la tabella seguente.

Scopo

Nuovo

Precedente

Nuovo esempio

Corrispondenza con qualsiasi carattere singolo (ad eccezione di un'interruzione di riga)

.

.

a.o consente la ricerca di "aro" in "around" e "abo" in "about" ma non di "acro" in "across".

Corrispondenza con nessuna o più occorrenze dell'espressione precedente (corrisponde a più caratteri possibile)

*

*

a*r corrisponde a "r" in rack", a "ar" in "ark e a "aar" in" aardvark

Corrispondenza con qualsiasi carattere zero o più volte (caratteri jolly *)

.*

.*

c.*e corrisponde a cke" in "racket", a "comme" in "comment" e a "code" in "code"

Corrispondenza con una o più occorrenze dell'espressione precedente (corrisponde a più caratteri possibile)

+

+

e.+e corrisponde a "eede" in "feeder" ma non a "ee".

Corrispondenza con qualsiasi carattere una o più volte (carattere jolly ?)

.+

.+

e.+e corrisponde a "eede" in "feeder" ma non a "ee".

Corrispondenza con nessuna o più occorrenze dell'espressione precedente (corrisponde a meno caratteri possibile)

*?

@

e.*? e corrisponde a "ee" in "feeder" ma non a "eede".

Corrispondenza con una o più occorrenze dell'espressione precedente (corrisponde a meno caratteri possibile)

+?

#

e.+?e corrisponde a "ente" e a "erprise" in "enterprise", ma non all'intera parola "enterprise".

Vincolare la stringa di ricerca all'inizio di una riga o stringa

^

^

^car corrisponde alla parola "car" solo quando viene visualizzato all'inizio di una riga.

Vincolare la stringa di ricerca alla fine di una riga

\r?$

$

End\r?$ corrisponde a "end" solo quando viene visualizzato alla fine di una riga.

Corrispondenza con qualsiasi carattere singolo in un set

[abc]

[abc]

b[abc] corrisponde a "ba", "bb" e "bc".

Corrispondenza con qualsiasi carattere nell'intervallo di caratteri

[a-f]

[x-y]

be[n-t] corrisponde a "bet" in "between", "ben" in "beneath" e "bes" in "beside", ma non "below".

Acquisire ed enumerare in modo implicito l'espressione racchiusa tra parentesi

()

()

([a-z])X\1 corrisponde a "aXa" e a "bXb", ma non a "aXb". ". "\1" si riferisce al primo gruppo di espressioni "[a-z]".

Invalidare una corrispondenza

(?!abc)

~(abc)

real (?!ity) corrisponde a "real" in "realty" e "really" ma non in "reality." Cerca anche il secondo "real" (ma non il primo "real") in "realityreal".

Corrisponde a qualsiasi carattere non incluso in un set di caratteri specificato

[^abc]

[^abc]

be[^n-t] corrisponde a "bef" in "before", "beh" in "behind" e "bel" in "below", ma non "beneath".

Corrispondenza con l'espressione precedente o a una successiva al simbolo.

|

|

(sponge|mud) bath consente di ricercare "sponge bath" e "mud bath".

Applica il carattere di escape al carattere che segue la barra rovesciata

\

\

\^ corrisponde al carattere ^.

Specificare il numero di occorrenze del carattere o del gruppo precedente

{x}, dove x rappresenta il numero di occorrenze

\ x, dove x rappresenta il numero di occorrenze

x(ab){2}x corrisponde a "xababx" e x(ab){2,3}x corrisponde a "xababx" e "xabababx" ma non a "xababababx".

Corrisponde al testo in una classe di caratteri Unicode, dove "X" è il numero Unicode.Per ulteriori informazioni sulle classi di caratteri Unicode, vedere.

Proprietà dei caratteri Unicode Standard 5.2.

\p{X}

:X

\ p {LU} corrisponde a "T" e a "D" in Thomas Doe".

Corrispondenza con un confine di parola

\ b (all'esterno di una classe di caratteri \ b indica il confine di una parola e all'interno di una classe di caratteri specifica un carattere backspace).

< e > specificano l'inizio e la fine di una parola.

\ bin corrisponde a "in" inside" ma non a "in" in "pinto".

Corrisponde a una interruzione di riga (ad esempio, un ritorno a capo seguito da una nuova riga).

\r?\n

\n

End\r?\nBegin consente di ricercare la parola "End" e "Begin" solo quando "End" è l'ultima stringa in una riga e "Begin" è la prima stringa nella riga successiva.

Corrispondenza con qualsiasi carattere alfanumerico

\w

:a

a\wd corrisponde ad "add" e ad "a1d" ma non ad "a d".

Corrispondenza con qualsiasi spazio vuoto.

(?([^\r\n])\s)

:b

Public\sInterface consente di ricercare la frase "Public Interface".

Corrispondenza con qualsiasi carattere numerico

\d

:d

\d corrisponde a "3" in "3456", a "2" in 23" e a "1" in "1".

Corrispondenza con un carattere Unicode

\uXXXX dove XXXX specifica il valore dei caratteri Unicode.

\uXXXX dove XXXX specifica il valore dei caratteri Unicode

\u0065 consente di ricercare il carattere "e."

Corrisponde a un identificatore.

\b(_\w+|[\w-[0-9_]]\w*)\b

:i

Corrisponde a "type1" ma non a &type1" o "#define".

Corrisponde a una stringa tra virgolette

((\".+?\")|('.+?'))

:q

Corrisponde a tutte le stringhe tra virgolette singole o doppie.

Corrisponde a un numero esadecimale

\b0[xX]([0-9a-fA-F])\b

:h

Corrisponde a "0xc67f" ma non a "0xc67fc67f".

Corrispondenza con numeri interi e decimali

\b[0-9]*\.*[0-9]+\b

:n

Corrisponde a "1,333".

Vedere anche

Altre risorse

Ricerca e sostituzione di testo