Direkt zum Hauptinhalt springen
eLearner.app
Modul 1 · Lektion 1 von 41/32 im Kurs~8 min
Lektionen des Moduls (1/4)

Literale Muster

In einer Regex stimmen "normale" alphanumerische Zeichen einfach mit sich selbst überein: Schreibe ciao als Muster und die Engine sucht nach der Teilzeichenkette ciao im Text. Nichts Magisches: ein Scan von links nach rechts Position für Position.

Code
Pattern: ciao
Sample:  Buongiorno, ciao mondo! Ti dico anche ciao.
                     ^^^^                        ^^^^

Ein Treffer (Match) liefert immer zwei grundlegende Informationen:

  • den übereinstimmenden Text (hier ciao);
  • den Index (0-basierter Offset), an dem er im Beispiel beginnt (hier 12 und 38).

Regexes sind standardmäßig case-sensitive (groß-/kleinschreibungssensitiv): ciao stimmt weder mit Ciao noch mit CIAO überein. Um die Groß-/Kleinschreibung zu ignorieren, füge das Flag i (case-insensitive) hinzu.

Wie die Engine arbeitet

Die Regex-Engine analysiert den Text Zeichen für Zeichen. Wenn sie nach dem literalen Muster ciao sucht, sucht sie zuerst nach dem Buchstaben c. Wenn sie ihn findet, prüft sie, ob das nächste Zeichen i, dann a und schließlich o ist. Wenn einer dieser Schritte fehlschlägt (Mismatch), geht die Engine einen Schritt zurück (Backtrack) zur nächsten Startposition und beginnt erneut mit der Suche nach dem c.

Literale Muster und das Flag g

Ohne das Flag g (global) stoppt die Engine beim ersten gefundenen Treffer und beendet die Suche. Wenn g aktiv ist, fährt sie bis zum Ende des Strings fort und sammelt alle nachfolgenden Treffer. In den Lektionen dieses Kurses aktivieren wir fast immer g: Wir möchten alle im Text vorhandenen Treffer sehen.

Probiere es aus

Übung#regex.m1.l1.e1
Versuche: 0Wird geladen…

Finde alle exakten (case-sensitive) Vorkommen des Wortes `ciao` im Text. Hinweis: Vergiss das Flag `g` nicht.

Editor wird geladen…
Hinweis anzeigen

Das Muster ist das Wort selbst. Großbuchstaben dürfen nicht übereinstimmen: kein i-Flag.

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#regex.m1.l1.e2
Versuche: 0Wird geladen…

Finde alle Vorkommen des Wortes `errore` im Text und ignoriere dabei Groß- und Kleinschreibung.

Editor wird geladen…
Hinweis anzeigen

Gleiches Wort als Muster, aber füge das i-Flag (case-insensitive) neben g hinzu.

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#regex.m1.l1.e3
Versuche: 0Wird geladen…

Identifiziere und sammle alle exakten Vorkommen des Wortes `WARNING` (Großbuchstaben, case-sensitive) im Beispiel-Logtext.

Editor wird geladen…
Hinweis anzeigen

Suche direkt nach der literalen Zeichenkette WARNING und achte darauf, das i-Flag nicht zu aktivieren.

Lösung nach 3 Versuchen verfügbar