AntonioGanci

Il blog di Antonio Ganci
posts - 201, comments - 420, trackbacks - 31

Usare le Regular Expression in Visual Studio per il Find e Replace

Oggi ho avuto la necessità di rimpiazzare il seguente testo che corrisponde alla visualizzazione di un byte array dalla Watch Window del debugger di Visual Studio:

        [0]    210    byte

        [1]    7    byte

        [2]    0    byte

        [3]    0    byte

        [4]    6    byte

        [5]    0    byte

        [6]    0    byte

        ...

Nel seguente modo:

210, 7, 0, 0, 6, 0, 0, ...

In modo da poter creare agevolmente tramite codice c# un array di byte. Chiaramente il buffer è molto più lungo altrimenti avrei impiegato meno tempo a modificare il testo a mano. Armato di pazienza mi sono ripassato la sintassi delle Regular Expression in Visual Studio ed ho prodotto la seguente espressione per il Find:

^:b*\[:z\]:b*{:z}:b*byte\n

Analizziamo le singole parti della regular expression:

^ L'inizio di una riga di testo
:b* Zero o più caratteri di spaziatura (nel formato standard delle regular expressione sarebbe \s*)
\[ Il carattere [ (essendo un carattere speciale deve essere preceduto da \)
:z Un numero intero
\] Il carattere ]
:b* Zero o più spazi
{:z} Le parentesi graffe indicano una tag expression che potrà essere utilizzata nel replace (vedi dopo)
:b* Zero o più spazi
byte La parola byte
\n Un line break

Ora per il replace ho scritto:

\1,

Significa di rimpiazzare ciò che viene trovato dall'espressione regolare precedente con la tag expression 1 (quella tra parentesi graffe e cioè il numero intero) seguito da una virgola e da uno spazio (non si vede nel testo). Dopo aver premuto il pulsante Replace All Il risultato è il seguente:

210, 7, 0, 0, 6, 0, 0, ...

Semplice no?

Print | posted on lunedì 8 gennaio 2007 14:26 | Filed Under [ Tips ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET