Reguläre Ausdrücke (Regular Expressions) sind eine mächtige Erweiterung der String-Verarbeitung in Visual Basic (eigentlich im Framework). Ungewöhnlich ist auch die Geschichte, die sich dahinter verbirgt, nämlich wie Reguläre Ausdrücke ihren Weg in das Framework gefunden haben. Sie müssen wissen: Die verschiedenen Themengebiete innerhalb des Frameworks werden von eigenen, sehr unabhängigen Ent-wicklungsteams bei Microsoft entwickelt. Reguläre Ausdrücke waren ursprünglich »nur« eine Erweiterung bzw. ein Werkzeug, die bzw. das im ASP.NET-Team gebraucht wurde. Erst in teamübergreifenden Meetings erkann¬ten auch andere Teams das Vorhandensein von Regulären Ausdrücken, und nun begann ein Tauzie-hen darum, in welchem Namensbereich die Regex-Klasse, mit der Sie Reguläre Ausdrücke anwenden, letzten Endes ihr zu Hause fand.
Das Ergebnis kennen Sie: Sie finden die Regex-Klasse im Bereich Systems.Text.RegularEx¬pressions. Das bedeutet: Sie müssen die Anweisung
Imports System.Text.RegularExpressions
an den Anfang einer Klassen-Quellcodedatei setzen, damit Sie auf die Klassen zugreifen können.
Die große Frage, die sich vielen stellt: Was genau sind Reguläre Ausdrücke? Die Wurzeln von Regulären Ausdrücken gehen zurück auf die Arbeiten eines gewissen Stephen Kleene. Stephen Kleene war ein ameri-kanischer Mathematiker und darüber hinaus einer derjenigen, die die Entwicklung der theoretische Infor-matik maßgeblich beeinflusst und vorangetrieben haben. Er erfand eine Schreibweise für die, wie er sie nannte, »Algebra regelmäßiger Mengen«. Im Kontext von Suchaufgaben mit dem Computer war das »*«-Zeichen deshalb bis vor einiger Zeit auch unter dem Namen »Kleene-Star« bekannt.
Und damit sind wir auch schon beim Thema, denn das »*«-Zeichen als Joker oder Wildcard hat jeder von Ihnen sicherlich schon einmal unter DOS, zumindest aber in der Konsole verwendet. Wenn Sie in der Konsole beispielsweise alle Dateien anzeigen lassen möchten, die mit ».TXT« enden, geben Sie den Befehl
dir *.txt
ein. Sie können also bestimmte Sonderzeichen verwenden, um Zeichenfolgen zu finden, welche Regeln unterliegen, die von diesen Sonderzeichen definiert werden. Genau dazu dienen Reguläre Ausdrücke. Dummerweise ist das Demonstrieren von Regulären Ausdrücken mit simplen Konsolen-Anwendungen nicht sehr anschaulich, vor allen Dingen auch recht mühsam. Denn bei aller Leistungsfähigkeit von Regulä-ren Ausdrücken haben diese doch einen Nachteil: Sie sind vergleichsweise schwer zu lesen. Wenn Sie sich an die Zusammensetzung von Regulären Ausdrücken gewöhnt haben, dann wird Ihnen beim zeichenweisen Analysieren klar, wieso die Zeichenfolge
[\d,.]+[S]*
alle Zahlenkonstanten in einer Formel finden kann. Doch wenn Sie sie anschauen, werden Sie auch mit einiger Übung nicht direkt auf den ersten Blick ihre Funktionsweise durchschauen.
RegExperimente mit dem RegExplorer
Aus diesem Grund finden Sie HIER ein Beispielprojekt, mit dem Sie Reguläre Ausdrücke testen können.
Kurz zur Beschreibung: Nach dem Start des Programms können Sie Texte unter Quelltext erfassen, oder Sie können einen Text mit Datei/Quelltextdatei laden aus einer beliebigen Datei laden und in der Textbox Quelltext anzeigen lassen.
Unter Suchmuster können Sie einen Regulären Ausdruck eingeben; ein Mausklick auf die Schaltfläche Suchen löst dann die Suche mit dem angegebenen Suchbegriff aus.
Die verschiedenen Suchergebnisse zeigt Ihnen das TreeView-Steuerelement, das Sie in der linken, unteren Ecke des Programmfensters sehen. Ein Klick auf den Wurzeleintrag bringt die komplette Datei in das rechts daneben stehende Ergebnisfenster.
Ein Mausklick auf einen der untergeordneten Zweige (nur 2. Ebene) zeigt Ihnen Informationen über den gefundenen Begriff an. Gleichzeitig wird der Suchbegriff im Quelltext markiert.
Der RegExplorer hat eine Bibliothek mit häufig verwendeten Regulären Ausdrücken. Sie können einen Ausdruck aus der Bibliothek auswählen, indem Sie auf die Schaltfläche mit der Aufschrift »…« klicken, die sich neben der Schaltfläche Suchen befindet.

Möchten Sie einen neuen Bibliothekseintrag anlegen, klicken Sie auf die darunter stehende Schaltfläche, oder wählen Sie aus dem Menü Datei den Menüpunkt Suchmuster speichern. Der RegExplorer zeigt Ihnen einen weiteren Dialog an, mit dem Sie den neuen Bibliothekseintrag erfassen können.

Klicken Sie auf Speichern, um den neuen Eintrag in die Bibliothek aufzunehmen.
Sie können das Programmfenster übrigens nach Belieben in der Größe anpassen und auch die verschiede-nen Bereiche innerhalb des Fensters mit den SplitterContainer-Komponenten sowohl horizontal (oberer Parameter- und unterer Ergebnisbereich) als auch vertikal (Verhältnis zwischen linker, unterer Ergebnis-TreeView und rechter, unterer Ergebnis-TextBox) verändern.
Erste Gehversuche mit Regulären Ausdrücken
Für die ersten Gehversuche laden Sie am besten den Quellcode des Programms selbst in den Quelltextbe-reich, um damit experimentieren zu können. Wählen Sie dazu Quelltext laden aus dem Menü Datei. Im Dateiauswahldialog wählen Sie anschließend den Dateityp VB-Quelldateien. Öffnen Sie anschließend die Datei frmMain.vb.
Einfache Suchvorgänge
Zunächst einmal können Sie einfache Zeichenfolgen verwenden, wenn Sie eine exakte Entsprechung für diese im Quelltext finden wollen. Geben Sie beispielsweise
Imports
als Suchbegriff ein und klicken anschließend auf die Schaltfläche Suchen, finden Sie in der darunter stehenden Ergebnisliste ausschließlich die Entsprechungen dieses Worts. Bis hierhin ist die Suchfunktion noch nichts Besonderes. Reguläre Ausdrücke werden erst dann interessant, wenn mit Steuerzeichen bestimmte Funktionen beim Suchen (und später auch beim Ersetzen) mit einbezogen werden können.
Dazu ein simples Beispiel. Mithilfe des Oder-Operatorzeichens (»|«) können Sie aus einer Alterna¬tive von Zeichenketten Treffer generieren. Suchen Sie beispielsweise nach Wörtern, die wahlweise Dim, Private, Protected oder Public heißen sollen, dann formulieren Sie den Suchbegriff folgenderweise:
Dim|Private|Protected|Public
Wenn Sie anschließend auf Suchen klicken, sehen Sie ein Ergebnis, etwa wie es die folgende Abbildung zeigt.

9efc13af-bd28-4c85-b385-2e903fece24f|4|4.5
Tags: RegEx
Visual Basic |
Categories: RegEx