0Pricing
Lua Academy · Pelajaran

Capture dan string.match

Ekstrak grup yang ditangkap dari string menggunakan string.match dan capture ().

Capture dan string.match adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 2 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 Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.

Apa Itu Hasil Tangkapan?

Hasil tangkapan adalah subpola dalam pola Lua yang diapit tanda kurung. Hasil ini mengekstrak substring dari teks yang cocok.

string.match dengan Hasil Tangkapan

Jika suatu pola berisi hasil tangkapan, string.match mengembalikan substring yang tertangkap, bukan seluruh kecocokan.

local date = "2025-01-15"
local y, m, d = date:match("(%d+)-(%d+)-(%d+)")
print(y, m, d)  -- 2025  01  15

Satu Hasil Tangkapan

Satu hasil tangkapan mengembalikan satu nilai string.

local s = "name: Alice"
local name = s:match("name: (%a+)")
print(name)  -- Alice

Beberapa Hasil Tangkapan

Beberapa hasil tangkapan dikembalikan sebagai beberapa nilai.

local pair = "key = value"
local k, v = pair:match("(%w+)%s*=%s*(%w+)")
print(k, v)  -- key  value

Hasil Tangkapan Posisi ()

Hasil tangkapan kosong () menangkap posisi string saat ini sebagai angka.

local s = "hello world"
local pos = s:match("()world")
print(pos)  -- 7 (position where world starts)

Hasil Tangkapan Opsional

Tangkap bagian opsional dengan menempatkan ? setelah grup yang ditangkap.

local s = "http://example.com"
local protocol, host = s:match("(https?)://([^/]+)")
print(protocol, host)  -- http  example.com

string.find dengan Hasil Tangkapan

string.find dengan hasil tangkapan mengembalikan awal, akhir, lalu substring yang tertangkap.

local s = "phone: 555-1234"
local i, j, num = s:find("phone: (%d+-%d+)")
print(i, j, num)  -- 1  16  555-1234

Hasil Tangkapan Bersarang

Hasil tangkapan dapat dibuat bersarang. Penomorannya dilakukan dari kiri ke kanan berdasarkan tanda kurung pembuka.

local s = "2025-01-15"
local full, year = s:match("((%d%d%d%d)-%d%d-%d%d)")
print(full, year)  -- 2025-01-15  2025

Praktik Terbaik Hasil Tangkapan

Gunakan variabel dengan konvensi penamaan yang jelas. Jangan membuat hasil tangkapan terlalu bersarang. Kegagalan pencocokan mengembalikan nil — selalu periksa hasilnya sebelum menggunakan hasil tangkapan.

local result = s:match("(%d+)")
if result then print("found:", result)
else print("no match") end

Mencocokkan Alamat Email

Pola email sederhana (tidak sesuai RFC) dengan hasil tangkapan.

local email = "user@example.com"
local user, domain = email:match("([^@]+)@(.+)")
print(user, domain)  -- user  example.com

Tabel Semua Kecocokan

Untuk mengumpulkan semua kecocokan ke dalam tabel, gunakan string.gmatch (dibahas dalam pelajaran berikutnya).

Pertanyaan tentang Hasil Tangkapan

Apa yang dikembalikan oleh "2025-01-15":match("(%d+)-(%d+)-(%d+)")?

Ringkasan: Hasil Tangkapan dan string.match

Hasil tangkapan menggunakan () dalam pola untuk mengekstrak substring. string.match langsung mengembalikan nilai yang tertangkap. () kosong menangkap posisi. Selalu periksa hasil pencocokan terhadap nil.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Capture dan string.match” gratis?

Ya — teks lengkap “Capture dan string.match” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Capture dan string.match”?

Ekstrak grup yang ditangkap dari string menggunakan string.match dan capture (). Kamu berlatih Lua 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 Lua Academy?

Tidak diperlukan pengalaman sebelumnya. Lua 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 2 dari 4.

Berapa lama pelajaran “Capture dan string.match” 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 Lua Academy ini?

Ya. Setiap pelajaran Lua 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

  1. Sintaks Pola Lua
  2. Capture dan string.match
  3. string.gmatch untuk Tokenisasi
  4. string.gsub untuk Transformasi
← Kembali ke Lua Academy