Die Flagge des Marasek

Dekostreifen

English

Aktuell Texte Der Comic Impressum Kalender Suche PHP-Klassen Container-Wizard main.s21

Kategorien

Buch
Computer
Computerspiele
Film
Geschichte
Gesellschaft
Idee
Kunst
Natur
Persönlich
Politik
Programmieren
Religion & Philosophie
Weblog
Weltpolitik
Weltsicht
{{login}}

Nutzen und Grenzen von Regulären Ausdrücken

Permalink
Vorheriger: Krieg von 1812Nächster: Jesus persönlich kennenlernen
Eingeordnet in: Programmieren

Regex - dieses Wort alleine ist geeignet, um Furcht und Verzweiflung zu säen. Wenn man sie allerdings irgendwann einigermaßen durchdrungen hat, werden sie zu jenen Werkzeugen, die Unix-Nerds mit leuchtenden Augen als "mäch-tig" bezeichnen.

Meiner Ansicht nach gibt es aber auch Grenzen für ihren Einsatz. Ihr Haupteinsatzgebiet und Ursprung liegt darin, in einer grossen Textmenge nach einem Muster zu suchen, etwa alle Wörter, die mit "ver-" anfangen.

In Programmiersprachen wie PHP kann man sie dazu verwenden, um einen String auf Gültigkeit zu untersuchen, etwa ob ein Benutzername nur kleingeschriebene Buchstaben ohne Umlaute enthält ("/^[a-z]*$/") oder ähnliches. Jedoch sollte man der Versuchung widerstehen, grössere, kompliziertere Srings mit einem einzelnen regulären Ausdruck zu prüfen, etwa eine Zeitangabe im Format "2006-01-01 15:14:53":

"/2[0-9]{3}-[0-1][0-9]-[0-3][0-9] [0-2][0-9][0-5][0-9][0-5][0-9]/"

Dieser Ausdruck möchte ein halbwegs gültiges Datum im 2. Jahrtausend. Theoretisch wäre aber auch Unsinn wie 2006-00-00 möglich. Erschwerend kommt dazu, dass ein Monat 28 bis 31 Tage haben kann.

Es ist sehr viel sinnvoller, eine generelle Gültigkeitsprüfung zu machen, dann den String in der Mitte bei " " zu teilen und die beiden Teile weiter runterzubrechen; dann kann man die Einzelelemente eingehend auf Plausibilität prüfen.

Selbst bei Beispielen, die man mit einem Regulären Ausdruck erschlagen könnte, sollte man im Interesse der besseren Les- und Wartbarkeit des Quelltextes das Problem lieber in Einzelaufgaben unterteilen.

Kommentieren

Bitte beachten: Kommentare sind nicht sofort sichtbar, sondern werden erst nach einer kurzen Prüfung freigegeben, sofern keine rechtliche Beanstandung vorliegt.
Rechtlich bedenkliche Inhalte werden entweder entschärft oder nicht veröffentlicht.

* Titel  
* Nickname  
* Kommentar