Skip to content

Commit fc116fe

Browse files
authored
Merge pull request #274 from XyoloJR/regex
Word boundary: \b
2 parents f8614aa + 137ec98 commit fc116fe

File tree

3 files changed

+27
-27
lines changed

3 files changed

+27
-27
lines changed

9-regular-expressions/06-regexp-boundary/1-find-time-hh-mm/solution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
The answer: `pattern:\b\d\d:\d\d\b`.
2+
Réponse : `pattern:\b\d\d:\d\d\b`.
33

44
```js run
55
alert( "Breakfast at 09:00 in the room 123:456.".match( /\b\d\d:\d\d\b/ ) ); // 09:00
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# Find the time
1+
# Trouvez l'heure
22

3-
The time has a format: `hours:minutes`. Both hours and minutes has two digits, like `09:00`.
3+
L'heure à un format : `hours:minutes`. Les heures et les minutes ont deux chiffres, comme `09:00`.
44

5-
Make a regexp to find time in the string: `subject:Breakfast at 09:00 in the room 123:456.`
5+
Écrire une expression régulière pour trouver l'heure dans la chaîne de caractère : `subject:Breakfast at 09:00 in the room 123:456.`
66

7-
P.S. In this task there's no need to check time correctness yet, so `25:99` can also be a valid result.
7+
P.S. Dans cet exercice il n'y a pas besoin de vérifier la validité de l'heure, donc ici `25:99` peut être une correspondance valable.
88

9-
P.P.S. The regexp shouldn't match `123:456`.
9+
P.P.S. L'expression régulière ne doit pas valider `123:456`.
Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,52 @@
1-
# Word boundary: \b
1+
# Limite de mot : \b
22

3-
A word boundary `pattern:\b` is a test, just like `pattern:^` and `pattern:$`.
3+
Une limite de mot `pattern:\b` teste une position, de la même manière que les ancres `pattern:^` et `pattern:$`.
44

5-
When the regexp engine (program module that implements searching for regexps) comes across `pattern:\b`, it checks that the position in the string is a word boundary.
5+
Quand le moteur d'expression régulière (module qui implémente la recherche d'expressions régulières) trouve le motif `pattern:\b`, il vérifie si la position dans la chaine de caractères est une limite de mot.
66

7-
There are three different positions that qualify as word boundaries:
7+
Il y a trois positions possibles pour une limite de mot :
88

9-
- At string start, if the first string character is a word character `pattern:\w`.
10-
- Between two characters in the string, where one is a word character `pattern:\w` and the other is not.
11-
- At string end, if the last string character is a word character `pattern:\w`.
9+
- 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 motif `pattern:\w`.
10+
- Entre deux caractères d'une chaîne, si seulement l'un des caractères correspond au motif `pattern:\w`, (alphanumérique ou trait de soulignement).
11+
- À la fin de la chaîne de caractères, si le dernier caractère correspond au motif `pattern:\w`.
1212

13-
For instance, regexp `pattern:\bJava\b` will be found in `subject:Hello, Java!`, where `subject:Java` is a standalone word, but not in `subject:Hello, JavaScript!`.
13+
Par exemple l'expression régulière `pattern:\bJava\b` sera trouvé dans `subject:Hello, Java!`, `subject:Java` est un mot isolé, mais pas dans `subject:Hello, JavaScript!`.
1414

1515
```js run
1616
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
1717
alert( "Hello, JavaScript!".match(/\bJava\b/) ); // null
1818
```
1919

20-
In the string `subject:Hello, Java!` following positions correspond to `pattern:\b`:
20+
Dans la chaîne `subject:Hello, Java!` les positions suivantes correspondent au motif `pattern:\b`:
2121

2222
![](hello-java-boundaries.svg)
2323

24-
So, it matches the pattern `pattern:\bHello\b`, because:
24+
Cette chaîne passe le test du motif `pattern:\bHello\b`, car :
2525

26-
1. At the beginning of the string matches the first test `pattern:\b`.
27-
2. Then matches the word `pattern:Hello`.
28-
3. Then the test `pattern:\b` matches again, as we're between `subject:o` and a comma.
26+
1. Le début de la chaîne passe le premier test `pattern:\b`.
27+
2. Puis trouve le mot `pattern:Hello`.
28+
3. Enfin le test `pattern:\b` est encore valide, comme nous sommes entre `subject:o` et une virgule.
2929

30-
So the pattern `pattern:\bHello\b` would match, but not `pattern:\bHell\b` (because there's no word boundary after `l`) and not `Java!\b` (because the exclamation sign is not a wordly character `pattern:\w`, so there's no word boundary after it).
30+
Donc le motif `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 motif `pattern:\w`, il n'est donc pas suivi par une limite de mot).
3131

3232
```js run
3333
alert( "Hello, Java!".match(/\bHello\b/) ); // Hello
3434
alert( "Hello, Java!".match(/\bJava\b/) ); // Java
35-
alert( "Hello, Java!".match(/\bHell\b/) ); // null (no match)
36-
alert( "Hello, Java!".match(/\bJava!\b/) ); // null (no match)
35+
alert( "Hello, Java!".match(/\bHell\b/) ); // null (aucune correspondance)
36+
alert( "Hello, Java!".match(/\bJava!\b/) ); // null (aucune correspondance)
3737
```
3838

39-
We can use `pattern:\b` not only with words, but with digits as well.
39+
La limite de mot `pattern:\b` ne s'utilise pas uniquement pour des mots, mais aussi pour les nombres.
4040

41-
For example, the pattern `pattern:\b\d\d\b` looks for standalone 2-digit numbers. In other words, it looks for 2-digit numbers that are surrounded by characters different from `pattern:\w`, such as spaces or punctuation (or text start/end).
41+
Par exemple, le motif `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 motif `pattern:\w`, comme des espaces, une ponctuation, un début ou une fin de chaîne.
4242

4343
```js run
4444
alert( "1 23 456 78".match(/\b\d\d\b/g) ); // 23,78
4545
alert( "12,34,56".match(/\b\d\d\b/g) ); // 12,34,56
4646
```
4747

48-
```warn header="Word boundary `pattern:\b` doesn't work for non-latin alphabets"
49-
The word boundary test `pattern:\b` checks that there should be `pattern:\w` on the one side from the position and "not `pattern:\w`" - on the other side.
48+
```warn header="La limite de mot `pattern:\b` ne fonctionne pas pour des alphabets non latin"
49+
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é.
5050

51-
But `pattern:\w` means a latin letter `a-z` (or a digit or an underscore), so the test doesn't work for other characters, e.g. cyrillic letters or hieroglyphs.
51+
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, p. ex. lettre cyrillique ou idéogramme.
5252
```

0 commit comments

Comments
 (0)