Freigeben über


Gewusst wie: Suchen von Zeichenfolgen mithilfe von regulären Ausdrücken (C#-Programmierhandbuch)

Aktualisiert: November 2007

Die System.Text.RegularExpressions.Regex-Klasse kann zum Suchen von Zeichenfolgen verwendet werden. Die Komplexität dieser Suchvorgänge kann unterschiedlich sein: Es gibt sehr einfache Suchvorgänge und solche, die umfassend Gebrauch von regulären Ausdrücken machen. Nachfolgend sind für das Suchen von Zeichenfolgen mithilfe der Regex-Klasse zwei Beispiele aufgelistet. Weitere Informationen finden Sie unter Reguläre Ausdrücke von .NET Framework.

Beispiel

Der folgende Code ist eine Konsolenanwendung, die eine einfache Suche nach Zeichenfolgen in einem Array ausführt, wobei nicht zwischen Groß- und Kleinschreibung unterschieden wird. Die statische Methode Regex.IsMatch führt die Suche aus, wobei die zu suchende Zeichenfolge und eine Zeichenfolge mit dem Suchmuster angegeben werden müssen. In diesem Beispiel wird ein drittes Argument verwendet, um anzugeben, dass die Groß-/Kleinschreibung ignoriert werden soll. Weitere Informationen finden Sie unter System.Text.RegularExpressions.RegexOptions.

class TestRegularExpressions
{
    static void Main()
    {
        string[] sentences = 
        {
            "cow over the moon",
            "Betsy the Cow",
            "cowering in the corner",
            "no match here"
        };

        string sPattern = "cow";

        foreach (string s in sentences)
        {
            System.Console.Write("{0,24}", s);

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
            {
                System.Console.WriteLine("  (match for '{0}' found)", sPattern);
            }
            else
            {
                System.Console.WriteLine();
            }
        }

        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();

    }
}
/* Output:
           cow over the moon  (match for 'cow' found)
           Betsy the Cow  (match for 'cow' found)
           cowering in the corner  (match for 'cow' found)
           no match here
*/

Der folgende Code ist eine Konsolenanwendung, bei der reguläre Ausdrücke verwendet werden, um das Format aller Zeichenfolgen in einem Array zu überprüfen. Für die Validierung ist es erforderlich, dass jede Zeichenfolge wie eine Telefonnummer in drei Zahlengruppen unterteilt ist, die mit Strichen voneinander getrennt sind. Die ersten zwei Gruppen enthalten drei Ziffern, die dritte Gruppe besteht aus vier Ziffern. Dies wird mithilfe des regulären Ausdrucks ^\\d{3}-\\d{3}-\\d{4}$ ermöglicht. Weitere Informationen finden Sie unter Sprachelemente für reguläre Ausdrücke.

class TestRegularExpressionValidation
{
    static void Main()
    {
        string[] numbers = 
        {
            "123-456-7890", 
            "444-234-22450", 
            "690-203-6578", 
            "146-893-232",
            "146-839-2322",
            "4007-295-1111", 
            "407-295-1111", 
            "407-2-5555", 
        };

        string sPattern = "^\\d{3}-\\d{3}-\\d{4}$";

        foreach (string s in numbers)
        {
            System.Console.Write("{0,14}", s);

            if (System.Text.RegularExpressions.Regex.IsMatch(s, sPattern))
            {
                System.Console.WriteLine(" - valid");
            }
            else
            {
                System.Console.WriteLine(" - invalid");
            }
        }

        // Keep the console window open in debug mode.
        System.Console.WriteLine("Press any key to exit.");
        System.Console.ReadKey();
    }
}
/* Output:
      123-456-7890 - valid
     444-234-22450 - invalid
      690-203-6578 - valid
       146-893-232 - invalid
      146-839-2322 - valid
     4007-295-1111 - invalid
      407-295-1111 - valid
        407-2-5555 - invalid
*/

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

Zeichenfolgen (C#-Programmierhandbuch)