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).
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.
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
Grupları "anno", "mese", "giorno" olarak adlandırarak her tarihi YYYY-AA-GG biçiminde bulun.
İ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
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.
İ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
Find HTML/XML tag pairs (e.g. `**text**` or `*text*`) ensuring that the closing tag matches the opening tag using a named backreference.
İpucu göster
Adı (?<tag>\\w+) atayın ve \\k<tag> ile kapatın.
3 denemeden sonra çözüm mevcut