Procedura: utilizzare espressioni regolari per ridisporre i dati
Aggiornamento: novembre 2007
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare le espressioni regolari di .NET Framework per ridisporre o riformattare i dati. Vengono utilizzate le classi Regex e Match per estrarre il nome e il cognome da una stringa e vengono quindi visualizzati tali elementi in ordine inverso.
La classe Regex viene utilizzata per costruire un'espressione regolare in cui sia indicato il formato corrente dei dati. Si presuppone che i due nomi siano separati da una virgola e che sia possibile utilizzare un numero qualsiasi di spazi prima e dopo la virgola. Viene quindi utilizzato il metodo Match per analizzare ciascuna stringa. Se l'operazione riesce, il nome e il cognome vengono recuperati dall'oggetto Match e visualizzati.
Esempio
// regex_reorder.cpp
// compile with: /clr
#using <System.dll>
using namespace System;
using namespace Text::RegularExpressions;
int main()
{
array<String^>^ name =
{
"Abolrous, Sam",
"Berg,Matt",
"Berry , Jo",
"www.contoso.com"
};
Regex^ reg = gcnew Regex("(?<last>\\w*)\\s*,\\s*(?<first>\\w*)");
for ( int i=0; i < name->Length; i++ )
{
Console::Write( "{0,-20}", name[i] );
Match^ m = reg->Match( name[i] );
if ( m->Success )
{
String^ first = m->Groups["first"]->Value;
String^ last = m->Groups["last"]->Value;
Console::WriteLine("{0} {1}", first, last);
}
else
Console::WriteLine("(invalid)");
}
return 0;
}