string.find()
Coddy'nin Lua Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 37 / 54.
Artık karakter sınıflarını anladığınıza göre, tam metin yerine desenleri aramak için bunları string.find() ile kullanabilirsiniz. Bu, metin doğrulama ve analizi için güçlü olanaklar sunar.
string.find() işlevi, kalıplarla değişmez dizelerle çalıştığı şekilde çalışır. Kalıbın ilk eşleştiği konumu döndürür:
local text = "User123"
local position = string.find(text, "%d")
print(position) -- Çıktı: 5Bu, dizedeki 5. konumda bulunan ilk rakamı bulur. Büyük harfli karakter sınıflarını kullanarak bunun tersini de arayabilirsiniz:
local code = "ABC123"
local position = string.find(code, "%D")
print(position) -- Çıktı: 1Burada, %D rakam olmayan herhangi bir karakterle eşleşir, bu nedenle 1. konumdaki ilk harfi bulur.
Yaygın bir doğrulama görevi, bir dizenin belirli bir desenle başlayıp başlamadığını kontrol etmektir. Yalnızca dizenin başlangıcında eşleştirme yapmak için bir desenin başında ^ sabitleyicisini kullanabilirsiniz:
local username = "player42"
local startsWithLetter = string.find(username, "^%a")
if startsWithLetter then
print("Valid username")
else
print("Username must start with a letter")
endBu desen, string değerinin bir harfle başlayıp başlamadığını kontrol eder ve belirli biçimlerin gerektiği giriş doğrulama işlemlerinde kullanışlıdır.
Görev
KolaystartsWithLetter işlevini yazın; bu işlev text değerini alır ve dizenin bir harfle başlayıp başlamadığını döndürür.
Dizenin bir harfle başlayıp başlamadığını kontrol etmek için string.find() işlevini ^ çapası ve %a karakter sınıfıyla kullanın.
Parametreler:
text(string): Doğrulanacak dize
Döndürür: Dize bir harfle başlıyorsa true, aksi takdirde false (boolean)
Kendin dene
function startsWithLetter(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