Comment : réorganiser des données à l'aide d'expressions régulières (C++/CLI)
L'exemple de code suivant montre comment la prise en charge des expressions régulières du .NET Framework peut être utilisée pour réorganiser ou reformater des données. L'exemple de code suivant utilise les classes Regex et Match pour extraire les prénoms et noms d'une chaîne, puis afficher ces éléments dans l'ordre inverse.
La classe Regex est utilisée pour construire une expression régulière qui décrit le format actuel des données. Les deux noms sont supposés être séparés par une virgule et peuvent utiliser n'importe quel nombre d'espaces blancs autour de la virgule. La méthode Match est ensuite utilisée pour analyser chaque chaîne. En cas de réussite, les prénoms et noms sont récupérés à partir de l'objet Match et sont affichés.
Exemple
// 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;
}