Passer au contenu principal
eLearner.app
Module 3 · Leçon 2 sur 410/32 dans le cours~10 min
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.

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

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

Exercice#regex.m3.l2.e1
Tentatives : 0Chargement…

Trouvez chaque occurrence du mot entier `cat` (insensible à la casse). Il ne doit PAS correspondre à `category`, `concatenate`, `scatter`.

Chargement de l'éditeur…
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

Exercice#regex.m3.l2.e2
Tentatives : 0Chargement…

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.

Chargement de l'éditeur…
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

Exercice#regex.m3.l2.e3
Tentatives : 0Chargement…

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

Chargement de l'éditeur…
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