Saturday, January 9, 2010

Was ist Regex?

1. Was ist Regex

Regex ist die Abkürzung für „Regular Expressions“, zu Deutsch: „Reguläre Ausdrücke“. Wikipedia definiert Reguläre Ausdrücke als eine Zeichenkette, die der Beschreibung von Mengen beziehungsweise Untermengen von Zeichenketten mit Hilfe bestimmter syntaktischer Regeln dient. Regex ist ein mächtiges Werkzeug zum Validieren und Bearbeiten von Zeichenketten.

2. Verwendung von Regex in C#

Um Regex in einem C#-Programm nutzen zu können, muss zunächst der Namespace System.Text.RegularExpressions eingebunden werden: using System.Text.RegularExpressions; Um die Ausdrücke zu testen, erstellt man dann eine Instanz der Klasse Regex. Allgemein sieht dieser Befehl so aus: Regex myRegex = new Regex("[Pattern]"); Unter Pattern versteht man ein Muster, welches die Voraussetzungen beschreibt, wie eine gültige Zeichenkette auszusehen hat. Das Pattern kann beispielsweise beschreiben, dass eine Zeichenfolge nur gültig ist, wenn diese nur aus Zeichen von A – Z besteht. Oder, wenn diese nur Buchstaben, Ziffern und Strichpunkte enthält. Anstelle von [Pattern] übergibt man dem Konstruktor das Suchmuster als String. Um zum Beispiel nur Zahlen zuzulassen, wäre folgendes Pattern geeignet: ^[0-9]*$
Auf die Pattern werde ich in 4. Syntax von Regex näher eingehen. Anmerkung: Es wird empfohlen, bei komplexen Ausdrücken vor dem einleitenden Anführungszeichen des Pattern-Strings ein @-Zeichen zu setzen. Der Präfix @ bewirkt, dass im String vorkommende Anführungszeichen und umgekehrte Schrägstriche (Backslashes) weniger verwirrend angegeben werden können: Anführungszeichen, die im Pattern vorkommen, verdoppelt man, umgekehrte Schrägstriche können normal angegeben werden. Ohne @ müsste man vor einem Anführungszeichen einen umgekehrten Schrägstrich einfügen, umgekehrte Schrägstriche müsste man verdoppeln. (Wenn das Pattern zur Laufzeit definiert wird (z. B. bei Eingabe des Patterns in ein Textfeld während der Programmausführung), so gibt man Anführungszeichen und umgekehrte Schrägstriche normal an.) Die Instanz von Regex wird also folgendermaßen generiert: Regex myRegex = new Regex("^[0-9]*$"); Um zu überprüfen, ob das Suchmuster mit den gegebenen Daten (Inhalt von textBox1) übereinstimmt und anschließend das Ergebnis in eine Bool-Variable zu speichern, wäre folgende Befehlszeile notwendig: bool bedingungWahr = myRegex.IsMatch(textBox1.Text);

No comments:

Post a Comment

 
Blogverzeichnis - Blog Verzeichnis bloggerei.de Blog Suche