string.gmatch() ile Yineleme
Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 39 / 54.
string.match() bir kalıbın ilk oluşumunu bulurken, bir dizedeki tüm eşleşmeleri bulmanız gerekirse ne olur? string.gmatch() işlevi, her eşleşmeyi tek tek işlemek üzere bir for döngüsünde kullanabileceğiniz bir yineleyici döndürerek bu sorunu çözer.
Temel söz dizimi şu şekildedir:
for match in string.gmatch(text, pattern) do
-- her eşleşmeyi işle
endBir dizedeki tüm sayıları bulan bir örnek:
local text = "I have 3 apples and 5 oranges"
for number in string.gmatch(text, "%d+") do
print(number)
end
-- Çıktı:
-- 3
-- 5%d+ deseni bir veya daha fazla basamakla eşleşir ve döngü bulunan her number için bir kez çalışır.
Bir cümledeki tüm kelimeleri de çıkarabilirsiniz:
local sentence = "Lua is a powerful language"
for word in string.gmatch(sentence, "%a+") do
print(word)
end
-- Çıktı:
-- Lua
-- is
-- a
-- powerful
-- languageGörev
KolayextractHashtags işlevini yazın; bu işlev text değerini almalı ve metinde bulunan tüm hashtag'leri her biri ayrı bir satırda olacak şekilde döndürmelidir.
Metindeki tüm hashtag'leri bulmak için string.gmatch() kullanın. Bir hashtag, # ile başlar ve ardından bir veya daha fazla harf gelir.
Mantık:
- Tüm hashtag'leri bulmak için
string.gmatch()işlevini"#%a+"kalıbıyla kullanın - Her eşleşme üzerinde yineleyin ve bunları toplayın
- Tüm hashtag'leri satır sonu karakterleri (
\n) ile birleştirin - Hiç hashtag bulunamazsa boş bir dize döndürün
Parametreler:
text(string): Hashtag'leri aramak için kullanılacak metin
Döndürülen: Bulunan tüm hashtag'ler; her biri ayrı bir satırda. Hiç hashtag yoksa boş bir dize (string) döndürülür
Kendin dene
function extractHashtags(text)
-- Kodu buraya yaz
end
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1İleri Düzey Tablo Yineleme
pairs() ile Yinelemeipairs() ile Yinelemepairs() vs. ipairs()Özet - Karakter Sayfası4Metatable'lara Giriş
Metatable Nedir?setmetatable & getmetatable__index Metametodu__newindex Metametodu__tostring MetametoduAritmetik Metametotlar Bölüm 1Aritmetik Metametotlar Bölüm 2Özet - Salt Okunur Tablo7İleri Düzey String Manipülasyonu
Yer Değiştirme için string.gsub()String Desenlerine Girişstring.find()string.match()string.gmatch() ile YinelemeÖzet - Log Dosyası Ayrıştırıcı2Daha Fazla Tablo Kütüphanesi Fonksiyonu
table.concat()Tablo Oluşturma ve unpack()table.sort()Fonksiyonlar ile Özel SıralamaÖzet - Yüksek Skor TablosuKendi başına pratik yap: Online Lua derleyicisi