Direkt zum Hauptinhalt springen
eLearner.app
Modul 4 · Lektion 2 von 414/32 im Kurs~10 min
Lektionen des Moduls (2/4)

Alternativen: `|`

Der Pipe-Strich | ist das ODER (OR) in Regexes: Das Muster matcht, wenn eine der Alternativen matcht. Seine Priorität ist sehr niedrig: | trennt alles links und rechts von ihm bis zur umschließenden Gruppe oder dem Anfang des Musters.

Code
Pattern: cane|gatto|criceto
Sample:  Ho un cane, un gatto e un criceto.
               ^^^^     ^^^^^         ^^^^^^^

Klammern steuern die Priorität

Ohne Klammern erstrecken sich Alternativen vom Anfang bis zum Ende des Musters. Fast immer möchtest du das ODER auf einen Teil des Musters beschränken: Umschließe es mit einer Gruppe.

Code
Pattern   Bedeutung (falsch vs. richtig)
^a|b$     "Anfang + a" oder "b + Ende"             (wahrscheinlich falsch)
^(a|b)$   "Anfang + (a oder b) + Ende"             (wahrscheinlich richtig)

Zur typischen Reihenfolge von Alternativen: Setze die spezifischsten/längsten zuerst. Die Engine versucht es von links nach rechts und stoppt beim ersten Treffer: gat|gatto würde immer nur gat matchen.

Priorität und Isolation von Alternativen

Der Operator | hat eine sehr niedrige Priorität. Wenn du ^abc|def$ schreibst, suchst du nach "einem String, der mit abc beginnt, ODER einem String, der mit def endet". Um nach "Anfang des Strings gefolgt von abc oder def, gefolgt vom Ende des Strings" zu suchen, musst du ^(abc|def)$ schreiben.

Probiere es aus

Übung#regex.m4.l2.e1
Versuche: 0Wird geladen…

Finde jedes Vorkommen der drei Tiere `cane`, `gatto`, `criceto` im Text (in beliebiger Reihenfolge).

Editor wird geladen…
Hinweis anzeigen

Die Pipe trennt Alternativen. Verwende das g-Flag, um alle zu erfassen.

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#regex.m4.l2.e2
Versuche: 0Wird geladen…

Finde die Wörter `gennaio` oder `febbraio` NUR als ganze Wörter (verwende ``, um das Matchen innerhalb längerer Wörter zu vermeiden). Verwende Klammern, um die Alternation einzuschränken.

Editor wird geladen…
Hinweis anzeigen

\b(gennaio|febbraio)\b verankert die Auswahl an ganzen Wörtern.

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#regex.m4.l2.e3
Versuche: 0Wird geladen…

Finde Dateinamen, die auf die Dateiendungen `.jpg`, `.png` oder `.gif` enden.

Editor wird geladen…
Hinweis anzeigen

Verwende die Pipe innerhalb einer Gruppe, um zwischen Dateiendungen zu wechseln.

Lösung nach 3 Versuchen verfügbar