Beiträge durchsuchen

Reguläre Ausdrücke in Delphi

Was sind reguläre Ausdrücke?

Bei einem regulären Ausdruck (engl. „Regular Expression“, kurz „RegEx“) handelt es sich um eine Zeichenfolge mit einem Suchmuster. Verwendet werden solche Suchmuster in der Regel, um zu überprüfen, ob ein String (z.B. eine Benutzereingabe) einer erwarteten Vorgabe entspricht. Die Prüfung, ob es sich um eine Zahl handelt, ist noch relativ einfach, weil man die Benutzereingabe einfach in einen Integer-Wert umwandelt und prüft, ob dabei ein Fehler auftritt. Aber andere Formate wie Telefonnummern, Bankleitzahlen oder IP-Adressen sind schon deutlich schwieriger.
Mit regulären Ausdrücken kann man nicht nur herausfinden, ob eine Eingabe zum Suchmuster passt, sondern kann auch Teile davon extrahieren oder ersetzen. All das werden wir uns im Laufe dieses Tutorials ansehen.
Reguläre Ausdrücke sind keine Erfindung von Delphi. In Delphi wurden sie sogar relativ spät, erst mit Delphi XE, eingeführt. Es gibt unterschiedliche Varianten von regulären Ausdrücken. In Programmiersprachen haben sich die Perl kompatiblen regulären Ausdrücke (Perl compatible regular expressions, PCRE) durchgesetzt, die sich am Funktionsumfang von Perl 5 orientieren. Delphi implementiert die regulären Ausdrücke nicht selbst, sondern greift auf die Original-PCRE-Bibliothek zurück, die in C geschrieben ist und in Delphi mittels Header-Übersetzung zugreifbar gemacht und in die Anwendung gelinkt wird. Es ist zur Laufzeit also keine DLL o.ä. erforderlich.
Delphi-Versionen vor XE müssen auf externe Bibliotheken oder Komponenten zurückgreifen. In diesem Tutorial werden wir uns auf Delphi-Bordmittel ab Version XE konzentrieren.
Weitere allgemeine Informationen zu regulären Ausdrücken sind in der Wikipedia zu finden.