Lekcje modułu (2/4)
Granice słów: `\b` `\B`
\b to kotwica granicy słowa (word boundary): dopasowuje pozycję pomiędzy znakiem słowa (\w) a znakiem innym niż znak słowa (\W, bądź początkiem/końcem ciągu znaków). Podobnie jak ^ i $, NIE konsumuje ona znaków.
Pattern: \bgatto\b
Sample: Il gatto e la gattina giocano.
^^^^^Wzorzec gatto dopasuje się tylko jako całe słowo: wewnątrz gattina sekwencja gatto nie pasuje (brak końcowego o), nie pasowałaby również do gatti, ponieważ końcowe i jest znakiem słowa.
Kotwica \B stanowi przeciwieństwo: dopasowuje pozycję, która NIE jest granicą słowa.
Wyszukiwanie "całych słów"
Najbardziej typowym zastosowaniem \b jest "dopasowanie słowa X tylko wtedy, gdy występuje ono osobno, a nie jako część innego słowa":
\bif\b dopasuje 'if', ale nie 'sniff', 'gift', 'lifetime'.Granice słów a znaki niebędące słowami
Granica słowa \b nie dopasowuje żadnego fizycznego znaku; jest to test pozycji. Granica \b istnieje między znakiem \w a znakiem niebędącym znakiem słowa (lub początkiem/końcem tekstu). Negacja \B zapewnia, że bieżąca pozycja nie jest granicą słowa.
Spróbuj sam
Znajdź każde wystąpienie całego słowa `cat` (ignorując wielkość liter). NIE może dopasowywać `category`, `concatenate`, `scatter`.
Pokaż wskazówkę
Otocz 'cat' dwoma \b: granica na początku ORAZ granica na końcu.
Rozwiązanie dostępne po 3 próbach
Ćwiczenie powtórzeniowe
Znajdź każdą liczbę całkowitą, która NIE jest częścią identyfikatora (np. `42` tak, ale ani `var42`, ani `42abc`). Użyj `` po obu stronach.
Pokaż wskazówkę
Zapis \b\d+\b dopasowuje tylko 'izolowane' ciągi cyfr. W abc42 przed liczbą 42 występuje litera 'c' (znak słowa).
Rozwiązanie dostępne po 3 próbach
Dodatkowe wyzwanie
Znajdź sekwencję `cat` tylko wtedy, gdy rozpoczyna ona dłuższe słowo, wykluczając sytuacje, gdy występuje jako całe słowo lub na końcu (np. dopasuj `catalog`, ale nie `wildcat` ani samodzielne `cat`).
Pokaż wskazówkę
Użyj \b na początku cat (granica słowa) i \B na końcu (brak granicy słowa).
Rozwiązanie dostępne po 3 próbach