Skip to content

Commit 9413076

Browse files
committed
article to the end
1 parent 21f039d commit 9413076

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

9-regular-expressions/11-regexp-groups/article.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -252,13 +252,13 @@ Ne seront donc trouvés qu'autant de résultats que besoin, pas plus.
252252
Par ex. il y a 100 correspondances potentielles dans un texte, mais dans une boucle `for..of` nous en trouvons 5, et décidons alors que c'est suffisant et faisons un `break`. Le moteur de recherche ne perdra pas son temps à rechercher les 95 autres correspondances.
253253
```
254254
255-
## Named groups
255+
## Groupes nommés
256256
257-
Remembering groups by their numbers is hard. For simple patterns it's doable, but for more complex ones counting parentheses is inconvenient. We have a much better option: give names to parentheses.
257+
Il est difficile de se souvenir de groupes par leur numéro. Bien que faisable pour des motifs simples, cela devient ardu dans des motifs plus complexes. Nous avons une bien meilleure option : nommer les parenthèses.
258258
259-
That's done by putting `pattern:?<name>` immediately after the opening paren.
259+
Cela se fait en mettant `pattern:?<name>` immédiatement après la parenthèse ouvrante.
260260
261-
For example, let's look for a date in the format "year-month-day":
261+
Par exemple, recherchons une date au format "year-month-day":
262262
263263
```js run
264264
*!*
@@ -273,11 +273,11 @@ alert(groups.month); // 04
273273
alert(groups.day); // 30
274274
```
275275

276-
As you can see, the groups reside in the `.groups` property of the match.
276+
Comme vous pouvez le voir, les groupes figurent dans la propriété `.groups` de la correspondance.
277277

278-
To look for all dates, we can add flag `pattern:g`.
278+
Pour chercher toutes les dates, nous pouvons ajouter le marqueur `pattern:g`.
279279

280-
We'll also need `matchAll` to obtain full matches, together with groups:
280+
Nous aurons aussi besoin de `matchAll` pour obtenir des correspondances complètes, avec les groupes :
281281

282282
```js run
283283
let dateRegexp = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/g;
@@ -290,16 +290,16 @@ for(let result of results) {
290290
let {year, month, day} = result.groups;
291291

292292
alert(`${day}.${month}.${year}`);
293-
// first alert: 30.10.2019
293+
// premier alert: 30.10.2019
294294
// second: 01.01.2020
295295
}
296296
```
297297

298-
## Capturing groups in replacement
298+
## Groupes capturant dans un remplacement
299299

300-
Method `str.replace(regexp, replacement)` that replaces all matches with `regexp` in `str` allows to use parentheses contents in the `replacement` string. That's done using `pattern:$n`, where `pattern:n` is the group number.
300+
La méthode `str.replace(regexp, replacement)` qui remplace dans `str` toutes les correspondances de `regexp`, nous permet d'utiliser le contenu des parenthèses dans la chaîne de `replacement`. Nous utiliserons alors `pattern:$n`, `pattern:n` correspond au numéro de groupe.
301301

302-
For example,
302+
Par exemple,
303303

304304
```js run
305305
let str = "John Bull";
@@ -308,9 +308,9 @@ let regexp = /(\w+) (\w+)/;
308308
alert( str.replace(regexp, '$2, $1') ); // Bull, John
309309
```
310310

311-
For named parentheses the reference will be `pattern:$<name>`.
311+
Pour les parenthèses nommées la référence au groupe se fera avec `pattern:$<name>`.
312312

313-
For example, let's reformat dates from "year-month-day" to "day.month.year":
313+
Par exemple, reformatons les dates depuis le format "year-month-day" vers "day.month.year":
314314

315315
```js run
316316
let regexp = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2})/g;
@@ -321,44 +321,44 @@ alert( str.replace(regexp, '$<day>.$<month>.$<year>') );
321321
// 30.10.2019, 01.01.2020
322322
```
323323

324-
## Non-capturing groups with ?:
324+
## Groupe non capturant avec ?:
325325

326-
Sometimes we need parentheses to correctly apply a quantifier, but we don't want their contents in results.
326+
Nous avons parfois besoin de parenthèses pour appliquer correctement un quantificateur, sans avoir besoin de leurs contenu dans les résultats.
327327

328-
A group may be excluded by adding `pattern:?:` in the beginning.
328+
Un groupe peut en être exclu en ajoutant `pattern:?:` au début.
329329

330-
For instance, if we want to find `pattern:(go)+`, but don't want the parentheses contents (`go`) as a separate array item, we can write: `pattern:(?:go)+`.
330+
Par exemple, si nous voulons trouver `pattern:(go)+`, sans avoir les contenus des parenthèses (`go`) comme élément du tableau de correspondance, nous pouvons écrire : `pattern:(?:go)+`.
331331

332-
In the example below we only get the name `match:John` as a separate member of the match:
332+
Dans l'exemple suivant nous obtenons seulement `match:John` comme élément supplémentaire de la correspondance.:
333333

334334
```js run
335335
let str = "Gogogo John!";
336336

337337
*!*
338-
// ?: excludes 'go' from capturing
338+
// ?: exclu 'go' d'une capture
339339
let regexp = /(?:go)+ (\w+)/i;
340340
*/!*
341341

342342
let result = str.match(regexp);
343343

344-
alert( result[0] ); // Gogogo John (full match)
344+
alert( result[0] ); // Gogogo John (correspondance entière)
345345
alert( result[1] ); // John
346-
alert( result.length ); // 2 (no more items in the array)
346+
alert( result.length ); // 2 (pas d'autres éléments dans le tableau)
347347
```
348348

349-
## Summary
349+
## Résumé
350350

351-
Parentheses group together a part of the regular expression, so that the quantifier applies to it as a whole.
351+
Les parenthèses regroupent ensemble une partie de l'expression régulière, de telle sorte qu'un quantificateur s'applique à tout cet ensemble.
352352

353-
Parentheses groups are numbered left-to-right, and can optionally be named with `(?<name>...)`.
353+
Les groupes de parenthèses son numérotés de gauche à droite, et peuvent éventuellement être nommés avec `(?<name>...)`.
354354

355-
The content, matched by a group, can be obtained in the results:
355+
Le contenu correspondant à un groupe, peut être obtenu dans les résultats :
356356

357-
- The method `str.match` returns capturing groups only without flag `pattern:g`.
358-
- The method `str.matchAll` always returns capturing groups.
357+
- La méthode `str.match` retourne les groupes capturant seulement sans le marqueur `pattern:g`.
358+
- La méthode `str.matchAll` retourne toujours les groupes capturant.
359359

360-
If the parentheses have no name, then their contents is available in the match array by its number. Named parentheses are also available in the property `groups`.
360+
Si les parenthèses n'ont pas de nom, alors leur contenu est dans le tableau de correspondances par son numéro. Les parenthèses nommées sont disponibles aussi par la propriété `groups`.
361361

362-
We can also use parentheses contents in the replacement string in `str.replace`: by the number `$n` or the name `$<name>`.
362+
Nous pouvons aussi utiliser les contenus des parenthèses dans la chaine de remplacement de `str.replace`: par leur numéro `$n` ou leur nom `$<name>`.
363363

364-
A group may be excluded from numbering by adding `pattern:?:` in its start. That's used when we need to apply a quantifier to the whole group, but don't want it as a separate item in the results array. We also can't reference such parentheses in the replacement string.
364+
Un groupe pour être exclu de la numérotation en ajoutant `pattern:?:` à son début. Pour appliquer un quantificateur à groupe entier, sans avoir besoin de cet élément dans les résultats. Nous ne pourrons pas alors y faire référence dans la chaine de remplacement.

0 commit comments

Comments
 (0)