Dela via


Matcha ett mönster med hjälp av Visual C# och reguljära uttryck

Den här stegvisa artikeln beskriver hur du skapar och använder reguljära uttryck för att avgöra om strängar matchar vissa mönster.

Ursprunglig produktversion: Visual C#
Ursprungligt KB-nummer: 308252

Sammanfattning

Reguljära uttryck möjliggör enkel parsning och matchning av strängar till ett specifikt mönster. Med hjälp av de objekt som är tillgängliga i RegularExpressions namnområdet kan du jämföra en sträng med ett visst mönster, ersätta ett strängmönster med en annan sträng eller bara hämta delar av en formaterad sträng. I det här exemplet skapar vi ett mönster för att verifiera en e-postadress. Den här artikeln refererar till microsoft .NET Framework-klassbibliotekets namnområde System.Text.RegularExpressions.

Krav

Den här artikeln förutsätter att du är bekant med följande ämnen:

  • Visual C#
  • Syntax för reguljära uttryck

Använda reguljära uttryck för att matcha ett mönster

  1. Starta Visual C#.

  2. Skapa ett nytt Visual C#-konsolprogram.

  3. Ange nyckelordet Text.RegularExpressions using på namnområdet så att du inte behöver kvalificera deklarationer i dessa namnområden senare i koden. Användningssatsen måste användas före andra deklarationer:

    using System.Text.RegularExpressions;
    
  4. Definiera ett nytt reguljärt uttryck som använder en mönstermatchning för att verifiera en e-postadress. Följande reguljära uttryck är strukturerat för att åstadkomma tre saker:

    1. Samla in delsträngen före symbolen @ och placera den i user gruppen.
    2. Samla in delsträngen efter symbolen @ och placera den host i gruppen.
    3. Kontrollera att den första halvan av strängen inte har någon @ symbol.
    Regex emailregex = new Regex("(?<user>[^@]+)@(?<host>.+)");
    
  5. Definiera en ny sträng som innehåller en giltig e-postadress. Detta ger ett standardvärde om metodens kommandoradsargument är tomt:

    String s = "johndoe@tempuri.org";
    
  6. Kontrollera om det finns några kommandoradsparametrar. om det finns hämtar du den första parametern och tilldelar den till variabeln s.

    if (args.Length > 0) {
        s = args[0];
    }
    
  7. Använd metoden Match för att skicka in e-postadressvariabeln och returnera ett nytt Match objekt. Objektet Match returneras oavsett om några matchningar hittades i källsträngen.

    Match m = emailregex.Match(s);
    
  8. Genom att Success undersöka egenskapen kan vi bestämma om objektet ska bearbetas Match eller skrivas ut. Om det lyckas visar du de user och host namngivna grupperna i Groups objektets Match samling.

    if (m.Success)
    {
        Console.WriteLine ("User: " + m.Groups["user"].Value);
        Console.WriteLine ("Host: " + m.Groups["host"].Value);
    }
    else
    {
        Console.WriteLine (s + " is not a valid email address");
    }
    Console.WriteLine ();
    
  9. Om du vill hålla konsolfönstret öppet när programmet har körts lägger du till följande kodrader:

    System.Console.WriteLine("Press Enter to Continue...");
    System.Console.ReadLine();
    
  10. Skapa ditt projekt.

  11. Om du vill köra programmet i utvecklingsmiljön med standardadressen för e-postadressen som anges i koden trycker du på F5 eller väljer Starta på felsökningsmenyn. Det finns tre alternativ för att starta programmet med ett kommandoradsargument:

    • På Projekt-menyn klickar du på Egenskaper och sedan på Felsök. I avsnittet Startalternativ i den högra rutan anger du den e-postadress som du vill testa. Tryck på F5 eller klicka på Starta på felsökningsmenyn för att köra programmet.
    • Starta ett kommandofönster och navigera till mappen bin eller debug under mappen där projektet finns. Skriv sedan namnet på den körbara filen följt av den e-postadress som du vill testa.
    • Leta upp den körbara filen för det här projektet och dra den till Start... Kör fönstret i aktivitetsfältet. Lägg till e-postadressen för att verifiera och klicka på OK.

Referenser