Udostępnij przez


Dopasowywanie wzorca przy użyciu języka Visual C# i wyrażeń regularnych

W tym artykule krok po kroku przedstawiono sposób tworzenia i używania wyrażeń regularnych w celu określenia, czy ciągi są zgodne z określonymi wzorcami.

Oryginalna wersja produktu: Visual C#
Oryginalny numer KB: 308252

Podsumowanie

Wyrażenia regularne umożliwiają łatwe analizowanie i dopasowywanie ciągów do określonego wzorca. Korzystając z obiektów dostępnych w RegularExpressions przestrzeni nazw, można porównać ciąg z danym wzorcem, zastąpić wzorzec ciągu innym ciągiem lub pobrać tylko fragmenty sformatowanego ciągu. W tym przykładzie utworzymy wzorzec weryfikacji adresu e-mail. W tym artykule odwołuje się do przestrzeni System.Text.RegularExpressionsnazw biblioteki klas programu Microsoft .NET Framework.

Wymagania

W tym artykule założono, że znasz następujące tematy:

  • Visual C#
  • Składnia wyrażeń regularnych

Dopasowywanie wzorca za pomocą wyrażeń regularnych

  1. Uruchom program Visual C#.

  2. Utwórz nową aplikację konsolową Visual C#.

  3. Określ słowo kluczowe using w Text.RegularExpressions przestrzeni nazw, aby nie trzeba było kwalifikować deklaracji w tych przestrzeniach nazw w dalszej części kodu. Przed wszelkimi innymi deklaracjami należy użyć instrukcji using:

    using System.Text.RegularExpressions;
    
  4. Zdefiniuj nowe wyrażenie regularne, które będzie używać dopasowania wzorca do weryfikowania adresu e-mail. Następujące wyrażenie regularne jest ustrukturyzowane w celu wykonania trzech czynności:

    1. Przechwyć podciąg przed symbolem @ i umieść go w user grupie.
    2. Przechwyć podciąg po symbolu @ i umieść go w host grupie.
    3. Upewnij się, że pierwsza połowa ciągu nie ma symbolu @ .
    Regex emailregex = new Regex("(?<user>[^@]+)@(?<host>.+)");
    
  5. Zdefiniuj nowy ciąg zawierający prawidłowy adres e-mail. Zapewnia to wartość domyślną, jeśli argument wiersza polecenia metody jest pusty:

    String s = "johndoe@tempuri.org";
    
  6. Sprawdź, czy istnieją jakieś parametry wiersza polecenia; jeśli istnieją, pobierz pierwszy parametr i przypisz go do zmiennej s.

    if (args.Length > 0) {
        s = args[0];
    }
    
  7. Match Użyj metody , aby przekazać zmienną adresu e-mail i zwrócić nowy Match obiekt. Obiekt Match zwróci niezależnie od tego, czy w ciągu źródłowym znaleziono jakiekolwiek dopasowania.

    Match m = emailregex.Match(s);
    
  8. Sprawdzając Success właściwość, możemy zdecydować, czy kontynuować przetwarzanie Match obiektu, czy wyświetlić komunikat o błędzie. W przypadku pomyślnego user wyświetlenia grup nazwanych i host w Groups kolekcji Match obiektu.

    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. Aby okno konsoli było otwarte po uruchomieniu aplikacji, dodaj następujące wiersze kodu:

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

  11. Aby uruchomić aplikację w środowisku programistycznym przy użyciu domyślnego adresu e-mail określonego w kodzie, naciśnij F5 lub wybierz pozycję Start z menu Debugowanie . Aby uruchomić aplikację przy użyciu argumentu wiersza polecenia, dostępne są trzy opcje:

    • W menu Projekt kliknij pozycję Właściwości, a następnie kliknij pozycję Debuguj. W sekcji Opcje uruchamiania w okienku po prawej stronie określ adres e-mail, który chcesz przetestować. Naciśnij F5 lub kliknij przycisk Start w menu Debugowanie , aby uruchomić aplikację.
    • Uruchom okno polecenia i przejdź do folderu bin lub debugowania w folderze, w którym znajduje się projekt. Następnie wpisz nazwę pliku wykonywalnego, a następnie adres e-mail, który chcesz przetestować.
    • Znajdź plik wykonywalny dla tego projektu i przeciągnij go do menu Start... Uruchom okno na pasku zadań. Dodaj adres e-mail, aby zweryfikować, a następnie kliknij przycisk OK.

Informacje