Comment : extraire des champs de données à l'aide d'expressions régulières
Mise à jour : novembre 2007
L'exemple de code suivant illustre l'utilisation d'expressions régulières pour extraire des données d'une chaîne mise en forme. L'exemple de code suivant utilise la classe Regex pour spécifier un motif qui correspond à une adresse de messagerie. Ce motif inclut des identificateurs de champ qui peuvent être utilisés pour récupérer les parties nom d'utilisateur et nom d'hôte de chaque adresse de messagerie. La classe Match est utilisée pour exécuter les critères spéciaux réels. Si l'adresse de messagerie donnée est valide, le nom d'utilisateur et les noms d'hôtes sont extraits et affichés.
Exemple
// Regex_extract.cpp
// compile with: /clr
#using <System.dll>
using namespace System;
using namespace System::Text::RegularExpressions;
int main()
{
array<String^>^ address=
{
"jay@southridgevideo.com",
"barry@adatum.com",
"treyresearch.net",
"karen@proseware.com"
};
Regex^ emailregex = gcnew Regex("(?<user>[^@]+)@(?<host>.+)");
for (int i=0; i<address->Length; i++)
{
Match^ m = emailregex->Match( address[i] );
Console::Write("\n{0,25}", address[i]);
if ( m->Success )
{
Console::Write(" User='{0}'",
m->Groups["user"]->Value);
Console::Write(" Host='{0}'",
m->Groups["host"]->Value);
}
else
Console::Write(" (invalid email address)");
}
Console::WriteLine("");
return 0;
}