Guter Rat von Onkel Matthias: Lernt reguläre Ausdrücke!

Den Umgang mit regulären Ausdrücken zu trainieren, ist eine Investition, die ihr nicht bereuen werdet. Und dabei hilft die tolle Website regexr.com.

In diesem Blog wurde immer mal wieder das Hohelied auf die regulären Ausdrücke gesungen. Das sind – und ich entschuldige mich dafür, dass ich an dieser Stelle einen Grossteil meiner Leserschaft mit altbekannten Informationen langweile – syntaktische Formulierungen, die fürs Suchen und Ersetzen verwendet werden. Nur geht es nicht darum, einen exakten Begriff zu finden, sondern eine Menge von Begriffen, die eine Gemeinsamkeit haben.

Ein Beispiel: Im Beitrag Perfektion hat ihren Preis ging es darum, dass ich in meinem Blog einige Altlasten bereinigen wollte, die von der Migration auf WordPress übrig geblieben waren. Dafür waren gewisse Anpassungen im HTML-Code nötig, die ich nicht von Hand erledigen wollte. Ein regulärer Ausdruck – im Englischen regular expression oder kurz Regex genannt – findet platzierte Bilder anhand ihrer Image-Tags und die dazugehörigen Bildlegenden und schreibt diese auf die Anforderungen eines neuen Content Management Systems wie WordPress um.

Anderes Beispiel, ebenfalls aus dem Bereich des Webpublishings: Wenn man seine Website mit vernünftigen Links ausstatten will, dann kommt bei diesem Unterfangen den regulären Ausdrücken eine entscheidende Bedeutung zu. Im Beitrag Da geht es lang im Internet erkläre ich Details zu .htaccess.

Hacks fürs Web und die Textverarbeitung

Seit jeher bereite ich Exportdateien aus InDesign via Regex für die Veröffentlichung im Web auf (Der HTML-Hack für InDesign), und schliesslich helfen reguläre Ausdrücke auch bei ganz normalen Textverarbeitungsaufgaben weiter, beispielsweise, wenn es darum geht, richtige Anführungszeichen zu setzen.

Einige Beispiele dafür gibt es im Beitrag Geschickt suchen und klever ersetzen, auch wenn zu diesen Tipps die Ergänzung nötig ist, dass die Mustersuche in Word zwar das Prinzip der regulären Ausdrücke verwendet, aber eine eigene, etwas verkorkste Syntax verlangt. Man kann mit regulären Ausdrücken auch Dateien umbenennen, und für die Softwareentwicklung sind sie nicht wegzudenken.

Reguläre Ausdrücke taugen sogar für Kreuzworträtsel

Die Möglichkeiten sind so vielfältig, dass es sich meines Erachtens nicht nur für Webdesigner, Redakteure, Programmierer und Computerfreaks lohnt, sich grundlegende Kenntnisse bei den regulären Ausdrücken anzueignen. Zum Beispiel auch, um beim Regex Cross­word (Kreuzworträtsel mit dem gewissen Etwas) zu punkten.

Also, ein kleines Plädoyer: Wer nicht weiss, wozu (.*?) gut ist, der sollte ein bisschen Zeit in Tutorials wie dieses hier oder, kurz, knackig, mit Beispielen und in Englisch, wie dieses hier investieren. Auch der Wikipedia-Artikel zum Thema ist eine gute Anlaufsstelle.

Meines Erachtens sind die regulären Ausdrücke übrigens auch ein hervorragendes Thema für Informatikunterricht, der diesen Namen verdient (und in dem es nicht, wie hier geschnödet, nur darum geht zu lernen, wie man ein neues Dokument in Word anlegt).

Warum die Syntax auswendig lernen, wenn es Regexr.com gibt?

Übrigens geht es auch mir so, dass ich zwar die grundlegende Funktionsweise der regulären Ausdrücke intus habe, für die Details aber jeweils auch spicken muss. Das stört mich zwar an mir selbst, was aber wohl vor allem damit zu tun hat, dass ich noch zu einer Zeit die Schule besucht habe, wo zu einem grossen Teil jene Fakten zählten, die man auswendig herunterbeten kann. Der weise Satz von Albert Einstein – «Merken Sie sich niemals etwas, das Sie nachschlagen können» – hätte zwar damals schon bekannt sein müssen, entsprach aber offensichtlich nicht dem pädagogischen Zeitgeist.

Beim Spicken hilft mir jedenfalls die grossartige Website regexr.com, die ich jedem nur ans Herz legen kann, der die wunderbare Welt der regulären Ausdrücke erkunden möchte oder aber eine konkrete Aufgabe zu lösen hat.

Mit diesem Muster werden eingebettete Videos auf eine neue Spaltenbreite angepasst.

Sie zeigt einem anhand immer an, ob man mit seinem regulären Ausdruck richtig liegt – und zwar, kontinuierlich, bei jeder Änderung am Term, ohne dass man erst einen Knopf drücken müsste. Dazu trägt man unter Text ein Beispiel ein, das man mit seinem Ausdruck erfassen möchte.

Das ist aber noch nicht alles:

  • Im Absatz Tools trägt man bei Replace einen Ausdruck ein, der für die Ersetzung verwendet wird. Man sieht dann, wie unter Text eingetragene Beispiel umgeformt wird.
  • Man erhält Warnungen, wenn der Ausdruck nicht eindeutig formuliert ist, weil zum Beispiel ein Slash nicht maskiert ist. (Zur Erklärung: Zeichen, die in der Regex-Syntax eine spezielle Bedeutung haben, müssen mit einem Maskierungszeichen versehen werden, damit sie im Ausgangstext gefunden werden.
  • Unter Explain erhält man eine detaillierte Erklärung für seinen Term. Da sind auch die Capturing Groups aufgeführt. Das sind in Klammern stehende Teile des Ausdrucks, auf die im Term fürs Ersetzen über ihre Reihenfolge zugegriffen wird. $1 steht für das, was über die Capturing Group zwischen dem ersten Klammernpaar gefunden wird, $2 für diejenige zwischen dem zweiten Klammernpaar, und so weiter.
  • Am linken Rand gibt es ein Menü, über das man, wenn man ein Konto hat, seine Muster abspeichern und über einen Link öffentlich zur Verfügung stellt. Man kann Regexr.com aber auch ganz ohne Anmeldung anonym nutzen.
  • Es gibt ein Cheatsheet mit häufig verwendeten Mustern und eine ausführliche Referenz.
  • Und schliesslich findet man Beispiele aus der Community, mit der Möglichkeit, nach bestimmten Mustern zu suchen.

Fazit: Lernt reguläre Ausdrücke!

Beitragsbild: Dem Muster auf der Spur (Pixabay, Pexels-Lizenz).

Autor: Matthias

Computerjournalist, Familienvater, Radiomensch und Podcaster, Nerd, Blogger und Skeptiker. Überzeugungstäter, was das Bloggen angeht – und Verfechter eines freien, offenen Internets, in dem nicht alle interessanten Inhalte in den Datensilos von ein paar grossen Internetkonzernen verschwinden. Wenn euch das Blog hier gefällt, dürft ihr mir gerne ein Bier oder einen Tee spendieren: paypal.me/schuessler

Kommentar verfassen