Überblick

(Auszug aus "Reguläre Ausdrücke" von Jeffrey E. F. Friedl)

Am meisten können Sie aus dem Regex-Paket von .NET herausholen, wenn Sie mit der ausgebauten und einfach zu verwendenden Klassenstruktur arbeiten. Um Ihnen einen Überblick zu geben, wird hier ein vollständiges Konsolenprogramm mit einer einfachen Mustersuche mit expliziten Objekten ausprogrammiert:

Option Explicit On ' Für reguläre Ausdrücke nicht nötig, aber eine sehr gute
Option Strict On   ' Gewohnheit.
' Regex-Klassen einbinden.
Imports System.Text.RegularExpressions
Module SimpleTest
Sub Main()
    Dim BeispielString as String = "Ganz kurz 1mal testen."
    Dim R as Regex = New Regex("\d+\w+")     'Muster kompilieren.
    Dim M as Match = R.match(BeispielString) 'Auf Suchstring anwenden.
    If not M.Success
        Console.WriteLine("Kein Treffer")
    Else
        Dim MatchedText as String  = M.Value 'Resultatwerte abfragen ...
        Dim MatchedFrom as Integer = M.Index
        Dim MatchedLen  as Integer = M.Length
        Console.WriteLine("Treffer [" & MatchedText & "]" & _
                          " nach Position " & MatchedFrom.ToString() & _
                          ", Länge " & MatchedLen.ToString() & " Zeichen.")
    End If
End Sub
End Module

Wenn das Programm auf der Befehlszeile aufgerufen wird, wird ˹\d+\w+˼ auf den Beispieltext angewendet, und es wird folgende Zeile ausgegeben:

Treffer [1mal] nach Position 10, Länge 4 Zeichen.

Den Regex-Namensraum importieren

Beachten Sie die Zeile ›Imports System.Text.RegularExpressions‹ am Anfang des Programms. Jedes VB-Programm, das Regex-Objekte verwendet, muss damit das Regex-Paket einbinden.

Die analoge Anweisung in C# lautet:

using System.Text.RegularExpressions; // Syntax für C#

Im Beispiel werden die grundlegenden, »rohen« Regex-Objekte auf der tiefsten Ebene benutzt. Die zwei Anweisungen, in denen das eigentliche Regex-Geschehen stattfindet,

Dim R as Regex = New Regex("\d+\w+") 'Muster kompilieren.
Dim M as Match = R.match(BeispielString) 'Auf Suchstring anwenden.

können auch zu einer Zeile verdichtet werden:

Dim M as Match = Regex.Match(BeispielString, "\d+\w+") 'Muster auf String anwenden.

Die kombinierte Version ist einfacher im Gebrauch. Sie verursacht weniger Tipparbeit, und es gibt weniger Objekte, die man im Kopf haben muss. Sie ist allerdings ein kleines bisschen weniger effizient (siehe Caching von regulären Ausdrücken). Auf den nächsten Seiten benutzen wir zunächst jeweils die »rohen« Objekte und danach die »Komfort-Funktionen« wie die statische Regex.Match-Funktion, wenn dies sinnvoll erscheint.

Im Folgenden führe ich im Allgemeinen die drei folgenden Zeilen in den Beispielen nicht mehr auf:

Option Explicit On
Option Strict On
Imports System.Text.RegularExpressions

Eventuell ist es lehrreich, die VB-Beispiele aus früheren Kapiteln zu konsultieren. Solche Beispiele gibt es bei Reguläre Ausdrücke in VB und anderen .NET-Sprachen, Suchen und Ersetzen in VB.NET, Ein Link-Checker in VB.NET, CSV-Dateien mit VB.NET verarbeiten und Benchmarks mit VB.NET.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Reguläre Ausdrücke bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:
   

Copyright der deutschen Ausgabe © 2008 by O’Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Reguläre Ausdrücke" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstr. 81, 50670 Köln