Ana içeriğe geç
Modül 4 · Ders 4 ders 4Kurstaki 16/32~12 min
Modül dersleri (4/4)

Adlandırılmış gruplar ve geri referanslar

Grup sayısı arttığında $2'nin "ay" ve $5 olduğunu hatırlayarak "yıl" kırılgan hale geliyor. (?<name>...) sözdizimi şunları yapmanızı sağlar: bir grubu adlandırın: gruba groups.name yoluyla (ve $<name> olarak değiştirilir).

Code
Pattern: (?<anno>\d{4})-(?<mese>\d{2})-(?<giorno>\d{2})
Sample:  2024-03-15
Gruppi:
  anno    = "2024"
  mese    = "03"
  giorno  = "15"

Editör, eşleşmenin yanında adlandırılmış grupları gösterir.

Geri referans

geri referans, aynı modelin içinde referans vermenizi sağlar, önceki bir yakalamaya. Sözdizimi:

  • \1, \2, … -- numaralı referans (grup 1, 2,…'ye).
  • \k<name> -- adlandırılmış referans.
Code
Pattern: \b(\w+)\s+\1\b
Sample:  un test un test il il gatto
                                ^^^^^

Ardışık yinelenen kelimeler ile eşleşir: (\w+) bir kelimeyi yakalar ve ardından \s+\1 bir boşluk ve aynı kelimeyi gerektirir.

Kendi kendini belgeleyen kod ve adlandırılmış geri referanslar

Adlandırılmış gruplar, JavaScript kodunun okunabilirliğini artırır: match[1]'ye başvurmak yerine match.groups.name'ye erişirsiniz. Desenin içinde bunlara referans verme \\k<name> sözdizimi ile yapılır.

Deneyin

Egzersiz#regex.m4.l4.e1
Denemeler: 0Yükleniyor…

Grupları "anno", "mese", "giorno" olarak adlandırarak her tarihi YYYY-AA-GG biçiminde bulun.

Düzenleyici yükleniyor…
İpucu göster

Sözdizimi: (?<isim>desen). Maç, 'adlandırılmış' girişin altındaki grupları gösterir.

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#regex.m4.l4.e2
Denemeler: 0Yükleniyor…

Ardışık yinelenen kelimeleri bulun (ör. "il il", "casa casa"). İlki için bir grup, ikincisi için ise bir geri referans `\\1` kullanın.

Düzenleyici yükleniyor…
İpucu göster

\\b(\\w+)\\s+\\1\\b: ilk kelime (\\w+), sonra bir boşluk, ardından AYNI kelime \\1.

3 denemeden sonra çözüm mevcut

Ek zorluk

Egzersiz#regex.m4.l4.e3
Denemeler: 0Yükleniyor…

Find HTML/XML tag pairs (e.g. `**text**` or `*text*`) ensuring that the closing tag matches the opening tag using a named backreference.

Düzenleyici yükleniyor…
İpucu göster

Adı (?<tag>\\w+) atayın ve \\k<tag> ile kapatın.

3 denemeden sonra çözüm mevcut