Passer au contenu principal
eLearner.app
Module 4 · Leçon 1 sur 413/32 dans le cours~10 min
Leçons du module (1/4)

Groupes de capture : `(...)`

Les parenthèses (...) ont deux fonctions en une :

  1. Grouper des sous-motifs, de sorte qu'un quantificateur s'applique à l'ensemble du groupe ((ab)+ correspond à ab, abab, ababab).
  2. Capturer la sous-chaîne correspondante, en l'exposant sous forme de groupe numéroté accessible séparément (groupe 1, 2, 3… de gauche à droite sur la base de la parenthèse ouvrante).
Code
Pattern: (\d{4})-(\d{2})-(\d{2})
Sample:  Data: 2024-03-15.
               ^^^^^^^^^^
Gruppi:
  match  = "2024-03-15"
  gruppo1 = "2024"
  gruppo2 = "03"
  gruppo3 = "15"

L'éditeur sur la droite montre les groupes sous chaque correspondance.

Quantifier un groupe

Sans parenthèses, ab+ signifie "a suivi d'un ou plusieurs b". Avec des parenthèses, cela devient "un ou plusieurs ab" :

Code
Pattern   Matcha su 'ababab':
ab+       'ab' (poi 'a' e 'b' separati, non collegati)
(ab)+     'ababab' come gruppo unico

Indices des groupes de capture et utilisation

Chaque paire de parenthèses non précédée de caractères spéciaux crée un groupe de capture numéroté. Le groupe 1 correspond à la première parenthèse ouvrante, le groupe 2 à la seconde, et ainsi de suite. En JavaScript, vous pouvez accéder à ces groupes via le tableau renvoyé par exec ou matchAll.

À vous de jouer

Exercice#regex.m4.l1.e1
Tentatives : 0Chargement…

Trouvez chaque date au format AAAA-MM-JJ, en capturant l'année, le mois et le jour sous forme de trois groupes distincts.

Chargement de l'éditeur…
Afficher l'indice

Enveloppez chacun des trois blocs de chiffres entre parenthèses : chacun crée un groupe numéroté.

Solution disponible après 3 tentatives

Exercice de révision

Exercice#regex.m4.l1.e2
Tentatives : 0Chargement…

Trouvez chaque répétition de `ab` (une ou plusieurs) sous la forme d'une seule correspondance. Sans parenthèses, le quantificateur ne s'appliquerait qu'au dernier `b`.

Chargement de l'éditeur…
Afficher l'indice

(ab)+ traite 'ab' comme une unité et recherche une ou plusieurs répétitions consécutives.

Solution disponible après 3 tentatives

Défi supplémentaire

Exercice#regex.m4.l1.e3
Tentatives : 0Chargement…

Créez trois groupes de capture pour extraire séparément le jour, le mois et l'année des dates au format `JJ/MM/AAAA`.

Chargement de l'éditeur…
Afficher l'indice

Enveloppez chaque \d{2} ou \d{4} entre parenthèses.

Solution disponible après 3 tentatives