Die Macht regulärer Ausdrücke

Die Macht regulärer Ausdrücke

Ich schwärme immer mal wieder von regulären Ausdrücken. Das liegt wohl einfach daran, dass ich fast täglich mit ihnen arbeite. Sie sind einfach so unglaublich vielseitig verwendbar und machen ITlern das Leben leichter – wenn man sie beherrscht.

Nicht umsonst gibt es diesen „Witz“:

Ich hatte ein Problem und versuchte es mit regulären Ausdrücken zu lösen. Nun habe ich zwei Probleme.

In den Händen eines erfahrenen Anwenders sind reguläre Ausdrücke allerdings äußerst hilfreich. Gerade vor wenigen Tagen hatte ich die – eigentlich triviale – Aufgabe, ein paar Dateien umzubenennen, die ein bestimmtes Präfix hatten. Dieses Präfix sollte ausgetauscht werden. Anstatt die Dateien per Hand umzubenennen (oder die entsprechende Shell-Funktion zu nutzen 😉 ), habe ich mir mit einem simplen regulären Ausdruck in wenigen Sekunden ein Shell-Script gebaut, das die Aufgabe für mich löst.

prefix-Datei1.txt
prefix-Datei2.txt
...
prefix-Datei100.txt

Mit dem Suchen-/Ersetzen-Muster /^(prefix-(.*))$/move $1 neuerPrefix-$2/g wird daraus:

move prefix-Datei1.txt neuerPrefix-Datei1.txt
move prefix-Datei2.txt neuerPrefix-Datei2.txt
...
move prefix-Datei100.txt neuerPrefix-Datei100.txt

In diesem tollen Artikel geht Nikita Popov auf die Hintergründe von regulären Ausdrücken ein und erklärt ganz nebenbei noch die Chomsky-Hierarchie und warum man HTML nicht mit regulären Ausdrücken parsen sollte: The true power of regular expressions. Ein wirklich spannender Artikel, der mir wieder mal zeigt, wie sinnvoll es ist, reguläre Ausdrücke zu beherrschen.

Eine witzige Möglichkeit, reguläre Ausdrücke zu lernen, ist übrigens das Regex Crossword. Damit habe ich auch schon einige Stunden verbracht 😀


Wofür verwendest du reguläre Ausdrücke? Wie haben sie dir vielleicht schon deine Arbeit erleichtert?

Schreibe einen Kommentar

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

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax