string.match()
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 38 dari 54.
Meskipun string.find() memberi tahu kamu di mana sebuah pola muncul dalam string, terkadang kamu perlu mengambil teks sebenarnya yang cocok. Di sinilah string.match() berperan, dan fungsinya menjadi lebih kuat saat dipadukan dengan tangkapan.
Capture memungkinkan kamu menandai bagian tertentu dari pola yang ingin kamu ekstrak. Kamu membuat capture dengan membungkus sebagian pola dalam tanda kurung (). Saat string.match() menemukan kecocokan, fungsi ini mengembalikan teks yang ditangkap, bukan hanya posisinya.
Berikut contoh sederhana untuk mengekstrak angka dari string:
local text = "Player score: 100"
local number = string.match(text, "%d+")
print(number) -- output: 100Pola %d+ berarti "satu digit atau lebih." + adalah pengubah yang cocok dengan satu atau lebih karakter dari kelas karakter sebelumnya, sehingga kamu bisa menangkap angka yang terdiri dari beberapa digit.
Kamu dapat menggunakan tangkapan untuk mengekstrak bagian tertentu dari pola yang lebih kompleks:
local message = "User: Alice sent a message"
local username = string.match(message, "User: (%a+)")
print(username) -- output: AliceDi sini, tanda kurung di sekitar %a+ memberi tahu Lua untuk menangkap rangkaian huruf yang muncul setelah "User: ". Bagian pola lainnya membantu menemukan posisi yang tepat, tetapi hanya bagian yang ditangkap yang dikembalikan.
Jika polamu memiliki beberapa penangkapan, string.match() mengembalikan semuanya sebagai nilai terpisah, yang dapat kamu tetapkan ke beberapa variabel sekaligus.
Tantangan
MudahTulis fungsi extractPrice yang menerima text dan mengembalikan nilai harga yang ditemukan dalam string.
Gunakan string.match() dengan pola penangkap untuk mengambil harga numerik yang muncul setelah tanda dolar. Pola tersebut harus menangkap satu digit atau lebih menggunakan %d+.
Parameter:
text(string): String yang berisi harga dalam format "Price: $XX"
Nilai yang dikembalikan: Harga numerik sebagai string (string)
Coba sendiri
function extractPrice(text)
-- Tulis kodemu di sini
end
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Iterasi Tabel Tingkat Lanjut
Iterasi dengan pairs()Iterasi dengan ipairs()pairs() vs. ipairs()Rangkuman: Lembar Karakter4Pengenalan Metatable
Apa Itu Metatable?setmetatable & getmetatableMetamethod __indexMetamethod __newindexMetamethod __tostringMetamethod Aritmetika Bagian 1Metamethod Aritmetika Bagian 2Ulasan: Tabel Hanya-Baca7Manipulasi string Tingkat Lanjut
string.gsub() untuk SubstitusiPengantar Pola stringstring.find()string.match()Iterasi dengan string.gmatch()Rangkuman: Pengurai file log2Fungsi library tabel Lainnya
table.concat()Pembuatan tabel & unpack()table.sort()Pengurutan Kustom dengan FungsiRangkuman, Papan Skor TertinggiLatihan sendiri: Compiler Lua online