Iterasi dengan string.gmatch()
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 39 dari 54.
Jika string.match() menemukan kemunculan pertama pola, bagaimana jika kamu perlu menemukan semua kecocokan dalam sebuah string? Fungsi string.gmatch() mengatasi hal ini dengan mengembalikan iterator yang bisa kamu gunakan dalam for loop untuk memproses setiap kecocokan satu per satu.
Sintaks dasarnya terlihat seperti ini:
for match in string.gmatch(text, pattern) do
-- proses setiap kecocokan
endBerikut contoh yang menemukan semua angka dalam sebuah string:
local text = "I have 3 apples and 5 oranges"
for number in string.gmatch(text, "%d+") do
print(number)
end
-- output:
-- 3
-- 5Pola %d+ mencocokkan satu digit atau lebih, dan perulangan berjalan satu kali untuk setiap angka yang ditemukan.
Kamu juga dapat mengekstrak semua kata dari sebuah kalimat:
local sentence = "Lua is a powerful language"
for word in string.gmatch(sentence, "%a+") do
print(word)
end
-- Output:
-- Lua
-- is
-- a
-- powerful
-- languageTantangan
MudahTulis fungsi extractHashtags yang menerima text dan mengembalikan semua hashtag yang ditemukan dalam teks, masing-masing pada baris terpisah.
Gunakan string.gmatch() untuk mencari semua hashtag dalam teks. Hashtag dimulai dengan # yang diikuti oleh satu huruf atau lebih.
Logika:
- Gunakan
string.gmatch()dengan pola"#%a+"untuk mencari semua hashtag - Ulangi setiap hasil yang cocok dan kumpulkan semuanya
- Gabungkan semua hashtag dengan karakter baris baru (
\n) - Jika tidak ada hashtag yang ditemukan, kembalikan string kosong
Parameter:
text(string): Teks untuk mencari hashtag
Nilai kembali: Semua hashtag yang ditemukan, masing-masing pada baris terpisah. Jika tidak ada hashtag, kembalikan string kosong (string)
Coba sendiri
function extractHashtags(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