Regular Expressions! Was ist denn das schon wieder?


Die letzten Monate gingen viel zu schnell um (mal wieder). Privat gingen die Wogen hoch, langsam beruhigt sich alles wieder ein wenig… und mit meinen Lernvorhaben komme ich nicht so gut voran. Aber dafür mit Dingen, die ich eigentlich gar nicht vor hatte!

Unter anderem habe ich spontan beschlossen: Dieses Jahr lerne ich [Regular Expressions](http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck). Eine Sache, die zu beherrschen ich schon lange sehr nützlich gefunden hätte.

Was ich damit anfangen kann, ist sozusagen „Suchen und Ersetzen auf Steroiden“. Verschiedene Texteditoren – unter anderem mein derzeitiger Lieblingseditor vim – können mit regular expressions umgehen, aber auch das Perl-Programm [rename](http://wiki.ubuntuusers.de/rename) beherrscht sie und ist damit ziemlich mächtig.

Mit Regular Expressions kann ich nicht nur nach einer konkreten Zeichenkette suchen, sondern nach Mustern. Dazu ein Beispiel aus meiner Arbeit:

In einem früheren Job hatte ich regelmäßig mit langen, heterogenen Listen von URLs zu tun, und ich mußte abgleichen, welche Domains davon in einer SQL-Datenbank enthalten waren.

Für die SQL-Abfrage brauchte ich ein Format wie etwa folgendes:

beispiel.de
example.com
another-example.com
foobar.org

während die URLs etwa wie folgt vorlagen:

http://example.com/
http://www.beispiel.de/blog/
http://blog.another-example.com/
http://foobar.org/wordpress/

Das bei Listen, die schon mal mehrere hundert Einträge lang waren, auch nur mit gewöhnlichem Suchen und Ersetzen zu machen, war langwierig und frustrierend; von händischer Bearbeitung ganz zu schweigen.

Ich hoffe, daß ich am Ende meiner Beschäftigigung mit Regular Expressions diese Aufgabe mit ein bis zwei Zeilen Code bewältigen kann. Noch bin ich nicht ganz soweit. Mal sehen, wie lange ich brauche, bis ich das kann – regular expressions sind auf jeden Fall ein mächtiges Werkzeug und die Grundlagen davon zu beherrschen, kann nicht verkehrt sein.

Zum Lernen verwende ich bislang [diesen Kurs](http://regex.learncodethehardway.org/), mir wurde auch [diese Seite](http://www.regular-expressions.info/) empfohlen.

Wie sieht’s bei Euch aus: Nutzt Ihr Regular Expressions? Und wenn ja, wozu?


2 Antworten zu “Regular Expressions! Was ist denn das schon wieder?”

  1. Ich empfehle, lange RegExn gut zu dokumentieren. Bei manchen Problemstellungen vergeht viel Zeit, bis man sie korrekt abgebildet hat und wenn man sie ein halbes Jahr später erneut anfassen muss, verkürzen Kommentare die Einarbeitungszeit erheblich. 🙂

    der RegEx-Klassiker: https://xkcd.com/208/