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

Maskierung von Metazeichen

Einige Zeichen in Regexes haben eine besondere Bedeutung: Sie werden Metazeichen genannt. Wenn du das literale Zeichen matchen möchtest (z. B. einen echten ., ein echtes +, eine echte Klammer), musst du ihnen einen Backslash \ voranstellen, was sie escaped (maskiert).

Es gibt zwölf Metazeichen, die du dir merken solltest:

Code
.  *  +  ?  ^  $  |  \  (  )  [  ]  {  }  /

(Das / ist eigentlich kein Metazeichen der Engine, muss aber in der literalen JavaScript-Schreibweise /.../ escaped werden.)

Code
Pattern: \$\d+\.\d\d
Sample:  Prezzi: $9.99, $12.50, totale $22.49.
                 ^^^^^  ^^^^^^         ^^^^^^

Hier escapen wir $ (Ende-des-Strings-Anker) und . (Wildcard), um die literalen Zeichen im Preisformat "Dollar + Zahl + Punkt + zwei Ziffern" zu matchen.

Doppelter Backslash in JS-Strings

Wenn du ein Muster in einen JavaScript-String schreibst (wie in unseren Übungen), muss der Backslash verdoppelt werden. Der JS-String '\\d' enthält zwei Zeichen (\ und d) und ist genau das Regex-Muster \d.

JS
const re1 = /\d+/; // literale Schreibweise: ein einzelner Backslash
const re2 = new RegExp('\\d+'); // String: doppelter Backslash

Der Kurseditor zeigt das Muster bereits decodiert an (du siehst einen einzelnen \d); du musst selbst nichts verdoppeln.

Die 12 speziellen Metazeichen

Die Zeichen mit besonderen Bedeutungen in der Engine sind genau 12: \\ ^ $ . | ? * + ( ) [ {. Wenn du sie als literalen Text matchen möchtest, musst du ihnen einen Backslash voranstellen. In einigen Umgebungen (z. B. Nicht-Raw-JS-Strings) musst du den Backslash möglicherweise verdoppeln (\\\\).

Probiere es aus

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

Finde jeden Preis im Format `$N.NN` (Dollar, eine oder mehrere Ziffern, Punkt, zwei Ziffern). Denke daran, `$` und `.` zu escapen.

Editor wird geladen…
Hinweis anzeigen

$ muss als \$ escaped werden, der Punkt als \. - andernfalls matcht der Punkt jedes Zeichen.

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

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

Finde jedes literale Fragezeichen `?` im Text. `?` ist ein Metazeichen und muss escaped werden.

Editor wird geladen…
Hinweis anzeigen

Ohne Escape wäre ? ein Quantifizierer (Modul 2). Setze ein \ davor.

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

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

Finde alle Vorkommen von `.tar.gz` im Text und stelle sicher, dass die Punkte literal gematcht werden.

Editor wird geladen…
Hinweis anzeigen

Füge vor jedem Punkt einen Backslash ein, um ihn zu escapen.

Lösung nach 3 Versuchen verfügbar