Salt la conținutul principal
eLearner.app
Modulul 4 · Lecția 1 din 413/32 în curs~10 min
Lecții din modul (1/4)

Grupuri de captură: `(...)`

Parentheses (...) have two functions in one:

  1. Group sub-patterns, so that a quantifier applies to the whole group ((ab)+ matches ab, abab, ababab).
  2. Capture the matched substring, exposing it as a numbered group accessible separately (group 1, 2, 3… from left to right based on the opening parenthesis).
Code
Pattern: (\d{4})-(\d{2})-(\d{2})
Sample:  Data: 2024-03-15.
               ^^^^^^^^^^
Gruppi:
  match  = "2024-03-15"
  gruppo1 = "2024"
  gruppo2 = "03"
  gruppo3 = "15"

The editor on the right shows the groups under each match.

Quantifying a group

Without parentheses, ab+ means "a followed by one or more b". With parentheses it becomes "one or more ab":

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

Capture group indices and usage

Each pair of parentheses not preceded by special characters creates a numbered capture group. Group 1 corresponds to the first open parenthesis, group 2 to the second, and so forth. In JavaScript, you can access these groups via the array returned by exec or matchAll.

Try it

Exercițiu#regex.m4.l1.e1
Încercări: 0Se încarcă…

Find every date in YYYY-MM-DD format, capturing year, month and day as three separate groups.

Se încarcă editorul...
Afișează indiciu

Wrap each of the three digit blocks in parentheses: each one creates a numbered group.

Soluție disponibilă după 3 încercări

Review exercise

Exercițiu#regex.m4.l1.e2
Încercări: 0Se încarcă…

Find every repetition of `ab` (one or more) as a single match. Without parentheses, the quantifier would apply only to the last `b`.

Se încarcă editorul...
Afișează indiciu

(ab)+ treats 'ab' as a unit and looks for one or more consecutive repetitions.

Soluție disponibilă după 3 încercări

Additional challenge

Exercițiu#regex.m4.l1.e3
Încercări: 0Se încarcă…

Create three capture groups to extract the day, month, and year separately from dates in the format `DD/MM/YYYY`.

Se încarcă editorul...
Afișează indiciu

Enclose each \d{2} or \d{4} in parentheses.

Soluție disponibilă după 3 încercări