Skip to content

Commit b4043ac

Browse files
committed
rationnelle => régulière, modèle => motif, e. g. => p. ex.
1 parent e869d98 commit b4043ac

File tree

1 file changed

+12
-12
lines changed
  • 9-regular-expressions/08-regexp-character-sets-and-ranges

1 file changed

+12
-12
lines changed

9-regular-expressions/08-regexp-character-sets-and-ranges/article.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Plusieurs caractères ou classes de caractères, entourés de crochets `[…]` s
66

77
Par exemple, `pattern:[eao]` signifie un caractère qui est soit `'a'`, `'e'`, ou `'o'`.
88

9-
On appelle cela un *ensemble*. Les ensembles peuvent être combinés avec d'autres caractères dans une même expression rationnelle :
9+
On appelle cela un *ensemble*. Les ensembles peuvent être combinés avec d'autres caractères dans une même expression régulière :
1010

1111
```js run
1212
// trouve [t ou m], puis "op"
@@ -22,7 +22,7 @@ L'exemple suivant ne donne donc aucun résultat :
2222
alert( "Voila".match(/V[oi]la/) ); // null, pas de correspondance
2323
```
2424

25-
L'expression rationnelle recherche :
25+
L'expression régulière recherche :
2626

2727
- `pattern:V`,
2828
- puis *une* des lettres `pattern:[oi]`,
@@ -50,7 +50,7 @@ Nous pouvons aussi utiliser les classes de caractères entre `[…]`.
5050

5151
Par exemple, si nous voulons chercher un caractère alphanumérique, un trait de soulignement `pattern:\w` ou un tiret `pattern:-`, alors l'ensemble s'écrit `pattern:[\w-]`.
5252

53-
Il est aussi possible de combiner plusieurs classes, e.g. `pattern:[\s\d]` signifie "un caractère d'espacement ou un chiffre".
53+
Il est aussi possible de combiner plusieurs classes, p. ex. `pattern:[\s\d]` signifie "un caractère d'espacement ou un chiffre".
5454

5555
```smart header="Les classes de caractères sont en fait des racourcis pour des intervalles de caractères particuliers"
5656
Par exemple:
@@ -62,17 +62,17 @@ Par exemple:
6262

6363
### Exemple : \w multi-langue
6464

65-
Comme la classe de caractères `pattern:\w` est un raccourcis pour `pattern:[a-zA-Z0-9_]`, il ne peut pas trouver les idéogrammes chinois, ni les lettres cyrilliques, etc.
65+
Comme la classe de caractères `pattern:\w` est un raccourci pour `pattern:[a-zA-Z0-9_]`, il ne peut pas trouver les idéogrammes chinois, ni les lettres cyrilliques, etc.
6666

67-
Nous pouvons écrire un modèle plus universel, pour rechercher le caractère d'un mot quelle que soit la langue. Grâce aux propriétés Unicode, on obtient facilement : `pattern:[\p{Alpha}\p{M}\p{Nd}\p{Pc}\p{Join_C}]`.
67+
Nous pouvons écrire un motif plus universel, pour rechercher le caractère d'un mot quelle que soit la langue. Grâce aux propriétés Unicode, on obtient facilement : `pattern:[\p{Alpha}\p{M}\p{Nd}\p{Pc}\p{Join_C}]`.
6868

6969
Déchiffrons cela. Tout comme `pattern:\w`, nous construisons notre propre ensemble qui contient les caractères qui portent les propriétés Unicode :
7070

7171
- `Alphabetic` (`Alpha`) - pour les lettres,
7272
- `Mark` (`M`) - pour les accents,
7373
- `Decimal_Number` (`Nd`) - pour les nombres,
7474
- `Connector_Punctuation` (`Pc`) - pour le trait de soulignement `'_'` et autres caractères similaires,
75-
- `Join_Control` (`Join_C`) - deux codes spéciaux `200c` et `200d`, utilisés comme liaisons, e.g. en arabe.
75+
- `Join_Control` (`Join_C`) - deux codes spéciaux `200c` et `200d`, utilisés comme liaisons, p. ex. en arabe.
7676

7777
Exemple d'usage :
7878

@@ -90,7 +90,7 @@ Cet ensemble est bien sûr encore modifiable : on peut y ajouter ou retirer des
9090
```warn header="Les propriétés Unicode ne sont pas supportées par IE"
9191
Les propriétés Unicode `pattern:p{…}` ne sont pas implémentées dans IE. Si nous en avons vraiment besoin, nous pouvons utiliser la librairie [XRegExp](http://xregexp.com/).
9292
93-
Ou simplement utiliser des intervalles de caractères dans la langue qui nous intéresse, e.g. `pattern:[а-я]` pour les lettres cyrilliques.
93+
Ou simplement utiliser des intervalles de caractères dans la langue qui nous intéresse, p. ex. `pattern:[а-я]` pour les lettres cyrilliques.
9494
```
9595

9696
## Intervalles d'exclusion
@@ -124,9 +124,9 @@ Habituellement, lorsque nous cherchons précisément un caractère spécial, nou
124124

125125
En d'autres termes, tous les caractères spéciaux ne sont pas échappés, sauf s'ils ont un sens particulier pour un ensemble.
126126

127-
Un point `.` à l'intérieur de crochets signifie juste un point. Le modèle `pattern:[.,]` recherche un caractère : soit un point soit une virgule.
127+
Un point `.` à l'intérieur de crochets signifie juste un point. Le motif `pattern:[.,]` recherche un caractère : soit un point soit une virgule.
128128

129-
Dans l'exemple ci-dessous l'expression rationnelle `pattern:[-().^+]` cherche un des caractères `-().^+`:
129+
Dans l'exemple ci-dessous l'expression régulière `pattern:[-().^+]` cherche un des caractères `-().^+`:
130130

131131
```js run
132132
// Pas besoin d'échapper
@@ -155,9 +155,9 @@ alert( '𝒳'.match(/[𝒳𝒴]/) ); // affiche un caractère étrange qui resse
155155
// (la recherche n'a pas fonctionné correctement, seule une moitié du caractère est retournée)
156156
```
157157

158-
Le résultat n'est pas celui attendu, car par défaut une expression rationnelle ne reconnait pas une telle paire.
158+
Le résultat n'est pas celui attendu, car par défaut une expression régulière ne reconnait pas une telle paire.
159159

160-
Le moteur d'expression rationnelle pense que `[𝒳𝒴]` -- ne sont pas deux mais quatre caractères :
160+
Le moteur d'expression régulière pense que `[𝒳𝒴]` -- ne sont pas deux mais quatre caractères :
161161
1. la moitié gauche de `𝒳` `(1)`,
162162
2. la moitié droite de `𝒳` `(2)`,
163163
3. la moitié gauche de `𝒴` `(3)`,
@@ -189,7 +189,7 @@ Si nous oublions le marqueur `pattern:u`, il y aura une erreur :
189189

190190
En effet sans le marqueur `pattern:u` une paire de seizets est perçue comme deux caractères distincts, donc `[𝒳-𝒴]` est interprété en `[<55349><56499>-<55349><56500>]` (chacune des paires est remplacée par ses codes). Il est maintenant évident que l'intervalle `56499-55349` n'est pas valide : le premier code `56499` est plus grand que le dernier `55349`. Ce qui explique l'erreur précédente.
191191

192-
Avec le marqueur `pattern:u` le modèle est interprété correctement :
192+
Avec le marqueur `pattern:u` le motif est interprété correctement :
193193

194194
```js run
195195
// Cherche un caractère entre 𝒳 et 𝒵 compris

0 commit comments

Comments
 (0)