Lompati ke konten utama
Modul 4 · Pelajaran 4 dari 416/32 dalam kursus~12 min
Pelajaran modul (4/4)

Grup bernama dan referensi belakang

Ketika jumlah kelompok bertambah, ingatlah bahwa $2 adalah "bulan" dan $5 adalah "tahun" menjadi rapuh. Sintaks (?<name>...) memungkinkan Anda nama grup: Anda mengaksesnya berdasarkan nama melalui groups.name (dan masuk penggantinya sebagai $<name>).

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

Editor menunjukkan nama grup di sebelah kecocokan.

Referensi Balik

Referensi Balik memungkinkan Anda merujuk, di dalam pola yang sama, ke tangkapan sebelumnya. Sintaksnya:

  • \1, \2, … -- referensi bernomor (ke grup 1, 2, …).
  • \k<name> -- bernama referensi.
Code
Pattern: \b(\w+)\s+\1\b
Sample:  un test un test il il gatto
                                ^^^^^

Ini cocok dengan kata duplikat berturut-turut: (\w+) menangkap sebuah kata, lalu \s+\1 memerlukan spasi dan kata yang sama.

Kode yang didokumentasikan sendiri dan referensi balik yang diberi nama

Grup bernama meningkatkan keterbacaan kode JavaScript: alih-alih merujuk ke match[1], Anda mengakses match.groups.name. Di dalam pola itu sendiri, referensinya dilakukan dengan sintaks \\k<name>.

Cobalah

Latihan#regex.m4.l4.e1
Upaya: 0Memuat…

Temukan setiap tanggal dalam format YYYY-MM-DD dengan memberi nama grup `anno`, `mese`, `giorno`.

Memuat editor…
Tunjukkan petunjuk

Sintaks: (?<nama>pola). Pertandingan menunjukkan grup-grup di bawah entri 'bernama'.

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#regex.m4.l4.e2
Upaya: 0Memuat…

Temukan kata duplikat yang berurutan (misalnya `il il`, `casa casa`). Gunakan grup untuk yang pertama dan referensi balik `\\1` untuk yang kedua.

Memuat editor…
Tunjukkan petunjuk

\\b(\\w+)\\s+\\1\\b: kata pertama adalah (\\w+), lalu spasi, lalu kata SAMA \\1.

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#regex.m4.l4.e3
Upaya: 0Memuat…

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

Memuat editor…
Tunjukkan petunjuk

Tetapkan nama (?<tag>\\w+) dan tutup dengan \\k<tag>.

Solusi tersedia setelah 3 upaya