Modulelessen (2/4)
Woordgrenzen: `\b` `\B`
\b is een woordgrensanker: het komt overeen met de positie tussen a
woordteken (\w) en een niet-woordteken (\W, of het begin/einde van
het touwtje). Net als ^ en $ verbruikt het GEEN tekens.
Pattern: \bgatto\b
Sample: Il gatto e la gattina giocano.
^^^^^gatto komt alleen overeen als heel woord: binnen gattina de reeks
gatto is er niet (de laatste o ontbreekt), maar zou niet overeenkomen
gatti ofwel omdat de laatste i een woordteken is.
\B is het tegenovergestelde: het komt overeen met een positie die GEEN woord is
grens.
'hele woorden' vinden
Het meest voorkomende gebruik van \b is 'zoek het woord X alleen wanneer het geïsoleerd is, niet
als onderdeel van een ander woord":
\bif\b matches 'if' but not 'sniff', 'gift', 'lifetime'.Woordgrenzen en niet-woordkarakters
De grens \\b komt met geen enkel fysiek karakter overeen; het is een positietest. Er bestaat een \\b grens tussen een \\w teken en een niet-\\w teken (of begin/einde van tekst). De ontkenning \\B beweert dat de huidige positie geen woordgrens is.
Probeer het
Zoek elke keer dat het hele woord `cat` voorkomt (niet hoofdlettergevoelig). Het mag NIET overeenkomen met `category`, `samengevoegd`, `scatter`.
Toon hint
Wikkel 'kat' tussen twee \\b: grens aan het begin EN grens aan het einde.
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Vind elk geheel getal dat GEEN deel uitmaakt van een identificatie (bijvoorbeeld `42` ja, maar noch `var42` noch `42abc`). Gebruik `\\b` aan beide kanten.
Toon hint
\\b\\d+\\b komt alleen overeen met 'geïsoleerde' cijferreeksen. abc42 heeft 'c' (woord) vóór de 42.
Oplossing beschikbaar na 3 pogingen
Extra uitdaging
Find the sequence `cat` only if it starts a longer word, excluding when it appears as a whole word or at the end (e.g. match `catalog` but not `wildcat` or isolated `cat`).
Toon hint
Gebruik \\b aan het begin van cat (woordgrens) en \\B aan het einde (niet-woordgrens).
Oplossing beschikbaar na 3 pogingen