Leçons du module (2/4)
Limites de mots : `\b` `\B`
\b est une ancre de frontière de mot (word boundary) : elle correspond à la position entre un caractère de mot (\w) et un caractère qui n'est pas un mot (\W, ou le début/fin de la chaîne). Comme ^ and $, elle ne consomme PAS de caractères.
Pattern: \bgatto\b
Sample: Il gatto e la gattina giocano.
^^^^^gatto ne correspond qu'en tant que mot entier : à l'intérieur de gattina, la séquence gatto n'est pas présente (le o final est manquant), et elle ne correspondrait pas non plus à gatti car le i final est un caractère de mot.
\B est le contraire : il correspond à une position qui n'est PAS une frontière de mot.
Trouver des "mots entiers"
L'utilisation la plus courante de \b est de "faire correspondre le mot X uniquement lorsqu'il est isolé, pas comme partie d'un autre mot" :
\bif\b correspond à 'if' mais pas à 'sniff', 'gift', 'lifetime'.Frontières de mots et caractères non-mots
La frontière \b ne correspond à aucun caractère physique ; il s'agit d'un test de position. Une frontière \b existe entre un caractère \w et un caractère non-\w (ou début/fin du texte). La négation \B affirme que la position actuelle n'est pas une frontière de mot.
À vous de jouer
Trouvez chaque occurrence du mot entier `cat` (insensible à la casse). Il ne doit PAS correspondre à `category`, `concatenate`, `scatter`.
Afficher l'indice
Enveloppez 'cat' entre deux \b : frontière au début ET frontière à la fin.
Solution disponible après 3 tentatives
Exercice de révision
Trouvez chaque nombre entier qui ne fait PAS partie d'un identifiant (ex. `42` oui, mais ni `var42` ni `42abc`). Utilisez `` des deux côtés.
Afficher l'indice
\b\d+\b correspond uniquement aux séquences de chiffres 'isolées'. abc42 a 'c' (mot) avant le 42.
Solution disponible après 3 tentatives
Défi supplémentaire
Trouvez la séquence `cat` uniquement si elle commence un mot plus long, à l'exclusion du cas où elle apparaît comme un mot entier ou à la fin (ex. faites correspondre `catalog` mais pas `wildcat` ou `cat` isolé).
Afficher l'indice
Utilisez \b au début de cat (frontière de mot) et \B à la fin (frontière de non-mot).
Solution disponible après 3 tentatives