string.gmatch untuk Tokenisasi
Lakukan iterasi pada semua kecocokan dalam string dengan string.gmatch.
string.gmatch untuk Tokenisasi adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 3 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 string.gmatch?
string.gmatch(s, pattern) mengembalikan iterator yang secara berurutan mengembalikan semua kecocokan pattern dalam string s.
Melakukan Iterasi pada Kata
Ubah string menjadi token kata dengan mencocokkan rangkaian karakter yang bukan spasi.
local s = "the quick brown fox"
for word in s:gmatch("%S+") do
print(word)
endMengumpulkan Kecocokan ke dalam Tabel
Kumpulkan semua kecocokan ke dalam tabel untuk diproses lebih lanjut.
local function split(s, pat)
local parts = {}
for token in s:gmatch(pat) do
parts[#parts+1] = token
end
return parts
end
local words = split("one two three", "%S+")
print(#words) -- 3Mengekstrak Angka
Ekstrak semua bilangan bulat dari string dengan pola %d+.
local s = "x=10, y=20, z=30"
for n in s:gmatch("%d+") do
print(tonumber(n))
endMenggunakan Hasil Tangkapan dalam gmatch
Jika pola memiliki hasil tangkapan, setiap iterasi mengembalikan grup yang tertangkap, bukan seluruh kecocokan.
local s = "from=Alice, to=Bob, cc=Carol"
for k, v in s:gmatch("(%w+)=(%w+)") do
print(k, "->", v)
endTokenizer CSV
Pisahkan baris CSV dengan menangkap semua hal yang berada di antara koma.
local csv = "apple,banana,cherry,date"
for field in (csv .. ","):gmatch("([^,]*),") do
print(field)
endPenguraian Pasangan Kunci-Nilai
Uraikan string tajuk bergaya HTTP menjadi tabel pasangan kunci-nilai.
local headers = "Content-Type: text/html; Content-Length: 1234"
local parsed = {}
for k, v in headers:gmatch("([%w%-]+): ([^;]+)") do
parsed[k] = v:match("^%s*(.-)%s*$")
endMenghitung Kemunculan Pola
Hitung berapa kali suatu pola muncul dalam string.
local function count(s, pat)
local n = 0
for _ in s:gmatch(pat) do n = n + 1 end
return n
end
print(count("banana", "an")) -- 2Tokenizer Kalimat
Pisahkan teks menjadi kalimat dengan mencocokkan teks hingga tanda baca.
local text = "Hello. How are you? Fine!"
for sent in text:gmatch("[^.!?]+[.!?]?") do
print(sent:match("^%s*(.-)%s*$"))
endgmatch vs string.find dalam Perulangan
gmatch adalah cara yang disarankan untuk melakukan iterasi pada semua kecocokan. Menggunakan string.find dalam perulangan while lebih panjang dan lebih rentan terhadap kesalahan.
Keterbatasan Unicode
Pola Lua bekerja pada byte. Karakter UTF-8 multibyte mungkin tidak cocok dengan benar pada pola satu karakter. Untuk dukungan Unicode penuh, gunakan pustaka UTF-8.
Pertanyaan tentang gmatch
Pada apa for w in s:gmatch("%S+") do melakukan iterasi?
Ringkasan: string.gmatch
string.gmatch adalah tokenizer Lua standar. Gunakan untuk memisahkan string, mengekstrak semua angka, mengurai pasangan kunci-nilai, dan menghitung kemunculan pola dalam perulangan iterator yang rapi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “string.gmatch untuk Tokenisasi” gratis?
Ya — teks lengkap “string.gmatch untuk Tokenisasi” 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 “string.gmatch untuk Tokenisasi”?
Lakukan iterasi pada semua kecocokan dalam string dengan string.gmatch. 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 3 dari 4.
Berapa lama pelajaran “string.gmatch untuk Tokenisasi” 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
- Sintaks Pola Lua
- Capture dan string.match
- string.gmatch untuk Tokenisasi
- string.gsub untuk Transformasi