Comment : extraire des champs de données à l'aide d'expressions régulières (C++/CLI)

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 modèle qui correspond à une adresse de messagerie. Ce modèle inclut des identificateurs de champ qui peuvent être utilisés pour récupérer les parties de nom d'hôte et d'utilisateur 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, les noms d'hôte et nom d'utilisateur 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;
}

Voir aussi

Concepts

Expressions régulières du .NET Framework

Autres ressources

Guide de programmation .NET