Im folgenden Text geht es um reguläre Ausdrücke, die auch als „regular expression“, regexp oder Regex bekannt sind. Es wird beschrieben, welchem Zweck reguläre Ausdrücke dienen und auf die Anwendung eingegangen.

Reguläre Ausdrücke testen

Reguläre Ausdrücke testen

Als reguläre Ausdrücke werden Suchmuster bezeichnet, die auf Strings angewendet werden. Für diese Suchmuster ist entscheidbar, ob sie auf den String passen (also ein „match“ sind) oder ob sie nicht passend sind. Wäre das Suchmuster beispielsweise „au“, dann wäre der String „Bauer“ ein Match, denn darin ist „au“ enthalten, der String „Baden“ wäre jedoch kein Treffer.

Durch die Benutzung eines Regex ist es also möglich, eine Menge von Strings nach bestimmten Kriterien zu filtern.

Reguläre Ausdrücke werden in den meisten Fällen durch endliche Automaten umgesetzt. Im Bereich der Informatik gibt es Verfahren, dank derer automatisch ein Automat generiert werden kann, der Strings anhand eines bestimmten Suchmusters auf Treffer überprüft. Diese Funktionalität ist zum Beispiel für Anwendungen, die Benutzereingaben auswerten von großer Bedeutung.

Inzwischen nutzen viele Programmiersprachen reguläre Ausdrücke oder Regex. Neben Perl finden sie auch in Java, C, PHP und Python Anwendung. Sogar die Textverarbeitung und die Tabellenkalkulation von OpenOffice.org bieten die Möglichkeit an, einen Text mittels regulärer Ausdrücke zu durchsuchen.

Einfache Regex

Mit [123456] kann geprüft werden, ob die Eingabe einer der Zahlen 1-6 entspricht.
[1-6] würde die gleiche Arbeit verrichten, da die abzufragenden Zahlen aufeinanderfolgen.
Wäre die Eingabe der Zahl 4 jedoch nicht erlaubt, hieße der reguläre Ausdruck [1-35-6].

Regex mit mehreren Elementen

Angenommen das Programm würde die Eingabe einer Zahl 1-6 gefolgt von einem Buchstaben a oder b erwarten, sähe der Ausdruck so aus: [1-6][ab].
Jede eingefasste rechteckige Klammer entspricht einem Zeichen, sollen durch einen regulären Ausdruck mehrere Zeichen beschrieben werden, werden diese hintereinander gehangen.

Wenn eine Hausnummer aus drei Ziffern bestehen kann (aber nicht muss), gefolgt von einem Buchstaben a-z, würde der reguläre Ausdruck z. B. so aussehen: [1-9][0-9]?[0-9]?[a-z]?
Das Fragezeichen hinter einem Element (also hinter „[0-9]“) bedeutet, dass das vorhergehende Element vorkommen kann, aber nicht muss.

Darf ein abgefragtes Zeichen beliebig oft vorkommen, mindestens jedoch einmal, so würde dem regulären Ausdruck ein „+“ folgen.

Das Gebiet der regulären Ausdrücke ist sehr komplex, deshalb empfiehlt sich das Lesen einschlägiger Fachliteratur, um alle Facetten kennenzulernen. Es gibt im Internet auch Tools, mit denen man reguläre Ausdrücke online testen kann (siehe http://www.regexe.de/).  Ein grundlegendes Tutorial zum Thema gibt es hier: http://www.danielfett.de/internet-und-opensource,artikel,regulaere-ausdruecke.

Schlagwörter: 
Share →

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>