Lokasi ngalangkungan proxy:   [ UP ]  
[Ngawartoskeun bug]   [Panyetelan cookie]                
Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
avoid to repeat 'alphanumérique (ou un trait de soulignement)'
use correspond au modèle \w instead
  • Loading branch information
XyoloJR committed Jan 6, 2021
commit 8764f77fbe4ebe58a907d9503ebe6e675fa3154f
14 changes: 7 additions & 7 deletions 9-regular-expressions/06-regexp-boundary/article.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Limite de mot : \b

Une limite de mot `pattern:\b` teste une position, comme les ancres `pattern:^` et `pattern:$`.
Une limite de mot `pattern:\b` teste une position, de la même manière que les ancres `pattern:^` et `pattern:$`.

Quand le moteur d'expression rationnelle (module qui implémente la recherche d'expressions rationnelles) trouve le modèle `pattern:\b`, il vérifie si la position dans la chaine de caractères est une limite de mot.

Il y a trois positions possibles pour une limite de mot :

- Au début de la chaîne de caractères, si le premier caractère est alphanumérique (ou un trait de soulignement) `pattern:\w`.
- Entre deux caractères d'une chaîne, si un des caractères est alphanumérique (ou un trait de soulignement) `pattern:\w` et l'autre ne l'est pas.
- À la fin de la chaîne de caractères, si le dernier caractère est alphanumérique (ou un trait de soulignement) `pattern:\w`.
- Au début de la chaîne de caractères, si le premier caractère est alphanumérique (ou un trait de soulignement), c'est à dire qu'il correspond au modèle `pattern:\w`.
- Entre deux caractères d'une chaîne, si seulement l'un des caractères correspond au modèle `pattern:\w`, (alphanumérique ou trait de soulignement).
- À la fin de la chaîne de caractères, si le dernier caractère correspond au modèle `pattern:\w`.

Par exemple l'expression régulière `pattern:\bJava\b` sera trouvé dans `subject:Hello, Java!`, où `subject:Java` est un mot isolé, mais pas dans `subject:Hello, JavaScript!`.

Expand All @@ -27,7 +27,7 @@ Cette chaîne passe le test du modèle `pattern:\bHello\b`, car :
2. Puis trouve le mot `pattern:Hello`.
3. Enfin le test `pattern:\b` est encore valide, comme nous sommes entre `subject:o` et une virgule.

Donc le modèle `pattern:\bHello\b` sera trouvé, mais pas `pattern:\bHell\b` (car il n'y a pas de limite de mot après `l`) ni `Java!\b` (car le point d'exclamation n'est pas alphanumérique (ou trait de soulignement) `pattern:\w`, il n'est donc pas suivi par une limite de mot).
Donc le modèle `pattern:\bHello\b` sera trouvé, mais pas `pattern:\bHell\b` (car il n'y a pas de limite de mot après `l`) ni `Java!\b` (car le point d'exclamation ne correspond pas au modèle `pattern:\w`, il n'est donc pas suivi par une limite de mot).

```js run
alert( "Hello, Java!".match(/\bHello\b/) ); // Hello
Expand All @@ -38,7 +38,7 @@ alert( "Hello, Java!".match(/\bJava!\b/) ); // null (aucune correspondance)

La limite de mot `pattern:\b` ne s'utilise pas uniquement sur les mots, mais aussi pour les nombres.

Par exemple, le modèle `pattern:\b\d\d\b` recherche un nombre isolé à deux chiffres. C'est à dire, qu'il cherche un nombre à deux chiffres entouré par des caractères qui ne sont pas alphanumériques (ou traits de soulignement) `pattern:\w`, comme des espaces, une ponctuation, un début ou une fin de chaîne.
Par exemple, le modèle `pattern:\b\d\d\b` recherche un nombre isolé à deux chiffres. C'est-à-dire, qu'il cherche un nombre à deux chiffres entouré par des caractères qui ne correspondent pas au modèle `pattern:\w`, comme des espaces, une ponctuation, un début ou une fin de chaîne.

```js run
alert( "1 23 456 78".match(/\b\d\d\b/g) ); // 23,78
Expand All @@ -48,5 +48,5 @@ alert( "12,34,56".match(/\b\d\d\b/g) ); // 12,34,56
```warn header="La limite de mot `pattern:\b` ne fonctionne pas pour des alphabets non latin"
Le test de limite de mot `pattern:\b` vérifie qu'il doit y avoir `pattern:\w` d'un côté de la position et "not `pattern:\w`" - de l'autre côté.

Comme `pattern:\w` signifie `a-z`(en minuscule ou majuscule), un chiffre ou un trait de soulignement, donc le test ne fonctionne pas pour d'autres caractères, e.g. lettre cyrillique ou hiéroglyphe.
Comme `pattern:\w` signifie `a-z`(en minuscule ou majuscule), un chiffre ou un trait de soulignement, le test ne fonctionne pas pour d'autres caractères, e.g. lettre cyrillique ou hiéroglyphe.
```