Suche
Kreuzworträtsel für Informatiker
Wenn man größere Mengen an Text durchsuchen möchte, zum Beispiel Logdateien von Servern, kommen meistens reguläre Ausdrücke zum Einsatz. In diesem Beitrag schauen wir uns die grundlegende Funktionsweise von solchen Ausdrücken an.
Reguläre Ausdrücke sind erstmal auch ganz normale Texte, allerdings haben in diesen Quelltexten einige Zeichen eine spezielle Bedeutung.- Alternativen werden mit einem senkrechten Strich
|
dargestellt. Wenn man in einem Text alle Stellen mit "nord" oder "bord" hervorheben möchte, kann man alsonord|bord
schreiben. - Wenn man an einer Stelle verschiedene Buchstaben erlauben möchte, kann man diese in eckigen Klammern
[]
aufzählen. Wenn ich also bei "nord" und "bord" nicht auf Groß- bzw. Kleinschreibung achten möchte, könnte ich[Nn]ord|[Bb]ord
schreiben. - Manchmal sucht man alle Buchstaben außer einigen ganz bestimmten. Wenn man in einem Text nach allen Vorkommnissen von "ord" suchen möchte, vor denen kein großes oder kleines n oder b vorkommt, kann man eine Aufzählung mit dem
^
Zeichen invertieren.[^BbNn]ord
findet also zum Beispiel "ford", "Lord" oder auch "7ord". - Manchmal möchte man gerne einfach nur irgendein nicht-Leerzeichen haben. Dazu dient in regulären Ausdrücken der Punkt. Um alle Worte zu finden in denen "ord" mit einem Buchstaben davor vorkommt schreibt man
.ord
. - Manchmal dürfen sich bestimmte Buchstaben oder Wörter auch wiederholen. Das Sternchen
*
steht für beliebig viele oder auch kein Vorkommen. Wenn man allerdings mehr als ein Zeichen angeben möchte, muss man diesen Bereich in runde Klammern()
einschließen. Um eine Grußformeln mit beliebig vielen Ausrufezeichen zu finden, kann man als Ausdruck dazuHallo!*
verwenden. Wenn man viele (oder keine) aufeinanderfolgende Vorkommen von "?!" finden möchte muss man diese einklammern:(?!)*
. - Manchmal möchte man ein Vorkommen auch mindestens einmal finden. Das funktioniert im Prinzip genau so wie der
*
-Operator, nur das man halt ein+
schreibt. Um also alle mehrfachen Vorkommen von "ord" in einem Text zu finden, kann man(ord)+
schreiben. - Wenn man eine ganz bestimmte Anzahl von Wiederholungen angeben möchte, benutzt man dafür geschweifte Klammern
{}
. Mitf{2}
findet man also alle Vorkommen von doppelten t in einem Text. Mit einem Komma kann man untere und obere Grenzen angeben. f{2,4}
steht also für zwei bis vier f's. Und wenn man eine der Grenzen weglässt, entspricht diese dem Minimum bzw. Maximum. Den*
-Operator kann man also auch als{0,}
schreiben, den+
-Operator als{1,}
. - Jetzt wird es kompliziert: Manchmal möchte man gefundene Treffer noch einmal finden. In diesem Beispiel möchten wir Treffer wie "aalaa" oder "eexee" finden, aber nicht "aalee" oder "eexaa". Die doppelten Vokalen finden wir durch
(aa|ee|ii|oo|uu)
. Und um einen Text erneut zu suchen verwendet man einen rückwärtigen Schrägstrich\
gefolgt von der Nummer des Treffers. Als Treffer kann dabei jeder Bereich in runden Klammern dienen. Ein möglicher Ausdruck um die eben beschrieben Texte zu finden wäre also(aa|ee|ii|oo|uu)\1
schreiben.
Kommentare
Einen Kommentar schreiben