Yer Değiştirme için string.gsub()
Coddy'nin Lua Journey'sinin Logic & Flow bölümünün bir parçası — ders 35 / 54.
Dizelerle çalışırken, genellikle metin bulmanız ve değiştirmeniz gerekir. Lua'nın string.gsub() fonksiyonu, global değiştirme gerçekleştirerek—bir kalıbın tüm oluşumlarını bulup bunları başka bir şeyle değiştirerek—bunu kolaylaştırır.
Temel sözdizimi üç argüman alır: orijinal dize, bulunacak desen ve değiştirilecek metin:
local result = string.gsub(originalString, pattern, replacement)İşte tüm boşlukları alt çizgi ile değiştiren basit bir örnek:
local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned) -- Çıktı: hello_world_from_luaFonksiyon iki değer döndürür: değiştirilmiş dize ve yapılan değiştirme sayısı. İhtiyaç duyarsanız her ikisini de alabilirsiniz:
local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result) -- Çıktı: baz bar baz
print(count) -- Çıktı: 2Yalnızca ilk eşleşmeyi bulan bazı dize fonksiyonlarının aksine, string.gsub() varsayılan olarak her eşleşmeyi değiştirir; bu da onu istenmeyen karakterleri kaldırmak veya biçimlendirmeyi standartlaştırmak gibi metin temizleme görevleri için mükemmel kılar.
Görev
Kolaytext alan ve tüm boşlukların alt çizgilerle değiştirildiği temizlenmiş bir sürüm döndüren bir cleanText fonksiyonu yazın.
Metindeki her boşluk karakterini bir alt çizgi karakteriyle değiştirmek için string.gsub() kullanın.
Parametreler:
text(string): Temizlenecek metin
Döndürür: Tüm boşlukların alt çizgilerle değiştirildiği metin (string)
Kopya kağıdı
string.gsub() fonksiyonu, bir desenin tüm oluşumlarını bularak ve bunları değiştirerek global yer değiştirme gerçekleştirir:
local result = string.gsub(originalString, pattern, replacement)Boşlukları alt çizgilerle değiştirme örneği:
local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned) -- Çıktı: hello_world_from_luaFonksiyon iki değer döndürür: değiştirilmiş dize ve yapılan yer değiştirme sayısı:
local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result) -- Çıktı: baz bar baz
print(count) -- Çıktı: 2string.gsub() varsayılan olarak sadece ilk eşleşmeyi değil, her oluşumu değiştirir.
Kendin dene
function cleanText(text)
-- Kodu buraya yazın
end
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Logic & Flow 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 Tablosu