Info2go

Hier gibt ́s Videos über spannende Experimente, Aufnahmen von wissenschaftlichen Phänomenen und Reportagen über nordbord-Projekte sowie interessante Unternehmen. Das Beste: Du kannst auch deine eigenen Filme drehen und hier mit anderen nordbordern teilen.

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 also nord|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 dazu Hallo!* 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 {}. Mit f{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.
Das war jetzt ziemlich viel auf einmal. Wenn du nicht alles auf Anhieb verstanden hast: Keine Panik! Niemand hat sich diese Regeln beim ersten Lesen gemerkt. Und damit man das mit immer schwierigeren Beispielen üben kann, haben die Entwickler  @omichelsen und @maria_hagsten dazu viele verschiedene Kreuzworträtsel gebastelt. Ich wünsche auch also viel Spaß beim Üben auf regexcrossword.com, teilt gerne in den Kommentaren mit wie weit ihr gekommen seit.

Zurück