Grup Bernama dan Anchor
Regex tingkat lanjut.
Grup Bernama dan Anchor adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.
Mengapa Menggunakan Kelompok Bernama?
Tangkapan bernomor seperti m[1] menjadi sulit dibaca ketika pola semakin besar. Kelompok bernama memberi setiap tangkapan label yang bermakna.
Sintaksnya: (?<name>pattern).
m = /(?<year>\d{4})-(?<month>\d{2})/.match('2026-05')
puts(m[:year])
puts(m[:month])Mengakses Tangkapan Bernama
Akses tangkapan bernama dengan kunci Simbol atau teks: m[:name]. Metode named_captures mengembalikan semuanya sebagai tabel hash.
m = /(?<user>\w+)@(?<host>\w+)/.match('alice@mail')
p m.named_capturesKelompok Bernama dengan =~
Ketika literal ekspresi reguler dengan kelompok bernama berada di sebelah kiri =~, Ruby secara otomatis membuat variabel lokal untuk setiap nama.
if /(?<word>\w+)/ =~ 'hello'
puts word
endJangkar: Awal dan Akhir
Jangkar mencocokkan posisi, bukan karakter:
^awal baris$akhir baris
Jangkar sangat penting untuk memvalidasi bahwa seluruh masukan cocok.
puts(/^abc/.match?('abcdef'))
puts(/def$/.match?('abcdef'))
puts(/^abc$/.match?('abcdef'))Jangkar Teks \A dan \z
^ dan $ mencocokkan batas baris, yang penting untuk teks multibaris. Untuk seluruh teks, gunakan \A (awal) dan \z (akhir sebenarnya).
text = "first\nsecond"
puts(/^second/.match?(text))
puts(/\Asecond/.match?(text))Memvalidasi Seluruh Masukan
Untuk memeriksa apakah seluruh teks sesuai dengan suatu format, pasang jangkar di kedua ujungnya. Dengan demikian, teks yang memiliki karakter tambahan akan ditolak.
zip = /\A\d{5}\z/
puts(zip.match?('34000'))
puts(zip.match?('34000x'))Batas Kata
\b adalah batas kata: posisi di antara karakter kata dan karakter nonkata. Jangkar ini mencocokkan kata utuh tanpa mengonsumsi karakter.
puts('cat catalog'.scan(/\bcat\b/).length)
puts('cat catalog'.scan(/cat/).length)Pemeriksaan ke Depan
Pemeriksaan positif ke depan (?=...) memastikan apa yang muncul berikutnya tanpa memasukkannya ke dalam kecocokan. Pemeriksaan negatif ke depan adalah (?!...).
puts('100 dollars'.match(/\d+(?= dollars)/)[0])
puts('apple pie'.match?(/apple(?! juice)/))Pemeriksaan ke Belakang
Pemeriksaan ke belakang (?<=...) memastikan apa yang mendahului kecocokan. Pemeriksaan negatif ke belakang adalah (?<!...).
m = '$42'.match(/(?<=\$)\d+/)
puts(m[0])Kelompok Tanpa Penangkapan
Terkadang Anda memerlukan pengelompokan untuk alternasi atau pengulang, tetapi tidak ingin membuat tangkapan. Gunakan (?:...) sebagai kelompok tanpa penangkapan.
m = /(?:Mr|Ms)\. (\w+)/.match('Ms. Lee')
p m.capturesMenggabungkan Semuanya
Validator yang realistis menggunakan jangkar, kelompok bernama, dan pengulang secara bersamaan.
re = /\A(?<area>\d{3})-(?<num>\d{4})\z/
m = re.match('555-1234')
puts(m[:area])
puts(m[:num])Pemeriksaan Singkat
Jangkar apa yang harus Anda gunakan untuk memastikan seluruh teks cocok, dengan mengabaikan jeda baris?
Ringkasan: Kelompok Bernama dan Jangkar
Anda telah menguasai alat ekspresi reguler tingkat lanjut:
- Kelompok bernama
(?<name>...)dannamed_captures - Jangkar
^ $ \A \z \b - Pemeriksaan ke depan
(?=)/(?!)dan pemeriksaan ke belakang(?<=)/(?<!) - Kelompok tanpa penangkapan
(?:...)
puts(/\A(?<id>\d+)\z/.match('42')[:id])Pertanyaan yang Sering Diajukan
Apakah pelajaran “Grup Bernama dan Anchor” gratis?
Ya — teks lengkap “Grup Bernama dan Anchor” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Grup Bernama dan Anchor”?
Regex tingkat lanjut. Kamu berlatih Ruby Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Ruby Academy?
Tidak diperlukan pengalaman sebelumnya. Ruby Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Grup Bernama dan Anchor” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Ruby Academy ini?
Ya. Setiap pelajaran Ruby Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Literal Regex
- Pencocokan dan Penangkapan
- Substitusi
- Grup Bernama dan Anchor