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.
Suggerimento |
---|
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.
Suggerimento |
---|
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. |
\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". |