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

Wortgrenzen: `\b` `\B`

\b ist ein Wortgrenzenanker (word boundary): Er matcht die Position zwischen einem Wortzeichen (\w) und einem Nicht-Wortzeichen (\W oder dem Anfang/Ende des Strings). Wie ^ und $ konsumiert er KEINE Zeichen.

Code
Pattern: \bgatto\b
Sample:  Il gatto e la gattina giocano.
            ^^^^^

gatto matcht nur als ganzes Wort: Innerhalb von gattina ist die Sequenz gatto nicht vorhanden (das abschließende o fehlt), aber es würde auch nicht mit gatti übereinstimmen, da das abschließende i ein Wortzeichen ist.

\B ist das Gegenteil: Es matcht eine Position, die KEINE Wortgrenze ist.

"Ganze Wörter" finden

Die typischste Verwendung von \b ist "matcht das Wort X nur, wenn es isoliert ist, nicht als Teil eines anderen Wortes":

Code
\bif\b   matcht 'if', aber nicht 'sniff', 'gift', 'lifetime'.

Wortgrenzen und Nicht-Wort-Zeichen

Die Grenze \b matcht kein physisches Zeichen; sie ist eine Positionsprüfung. Eine Grenze \b existiert zwischen einem \w-Zeichen und einem Nicht-\w-Zeichen (oder Anfang/Ende des Textes). Die Verneinung \B stellt sicher, dass die aktuelle Position keine Wortgrenze ist.

Probiere es aus

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

Finde jedes Vorkommen des ganzen Wortes `cat` (case-insensitive). Es darf NICHT mit `categorymulti_replace_file_content`, `concatenate`, `scatter` übereinstimmen.

Editor wird geladen…
Hinweis anzeigen

Schließe 'cat' in zwei \b ein: Grenze am Anfang UND Grenze am Ende.

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

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

Finde jede ganze Zahl, die NICHT Teil eines Bezeichners ist (z. B. `42` ja, aber weder `var42` noch `42abc`). Verwende `` auf beiden Seiten.

Editor wird geladen…
Hinweis anzeigen

\b\d+\b matcht nur 'isolierte' Ziffernfolgen. abc42 hat ein 'c' (Wortzeichen) vor der 42.

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

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

Finde die Sequenz `cat` nur dann, wenn sie ein längeres Wort einleitet, ausgenommen wenn sie als ganzes Wort oder am Ende erscheint (z. B. matche `catalog`, aber nicht `wildcat` oder isoliertes `cat`).

Editor wird geladen…
Hinweis anzeigen

Verwende \b am Anfang von cat (Wortgrenze) und \B am Ende (keine Wortgrenze).

Lösung nach 3 Versuchen verfügbar