Direct naar de hoofdinhoud
Module 3 · Les 2 van 410/32 in de cursus~10 min
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.

Code
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":

Code
\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

Oefening#regex.m3.l2.e1
Pogingen: 0Laden…

Zoek elke keer dat het hele woord `cat` voorkomt (niet hoofdlettergevoelig). Het mag NIET overeenkomen met `category`, `samengevoegd`, `scatter`.

Editor laden…
Toon hint

Wikkel 'kat' tussen twee \\b: grens aan het begin EN grens aan het einde.

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#regex.m3.l2.e2
Pogingen: 0Laden…

Vind elk geheel getal dat GEEN deel uitmaakt van een identificatie (bijvoorbeeld `42` ja, maar noch `var42` noch `42abc`). Gebruik `\\b` aan beide kanten.

Editor laden…
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

Oefening#regex.m3.l2.e3
Pogingen: 0Laden…

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`).

Editor laden…
Toon hint

Gebruik \\b aan het begin van cat (woordgrens) en \\B aan het einde (niet-woordgrens).

Oplossing beschikbaar na 3 pogingen