Menu
CoddyTech

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ığına göre, tam metin yerine desenleri aramak için bunları string.find() ile kullanabilirsin. Bu, metin doğrulama ve analizi için güçlü olanaklar sunar.

string.find() işlevi, desenlerle de düz dizelerle olduğu gibi çalışır. Desenin ilk eşleştiği konumu döndürür:

local text = "User123"
local position = string.find(text, "%d")
print(position)  -- Çıktı: 5

Bu, dizgedeki ilk rakamı bulur; bu rakam 5. konumdadır. Büyük harf karakter sınıflarını kullanarak tersini de arayabilirsin:

local code = "ABC123"
local position = string.find(code, "%D")
print(position)  -- Çıktı: 1

Burada, %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 kalıpla başlayıp başlamadığını kontrol etmektir. Yalnızca dizenin başlangıcında eşleşme yapmak için kalıbın başında ^ çapası kullanabilirsin:

local username = "player42"
local startsWithLetter = string.find(username, "^%a")

if startsWithLetter then
    print("Valid username")
else
    print("Username must start with a letter")
end

Bu kalıp, dizenin bir harfle başlayıp başlamadığını kontrol eder ve belirli biçimlerin gerekli olduğu durumlarda giriş doğrulaması için kullanışlıdır.

Nokta gibi özel bir karakterin kendisini bulmak için karakteri % ile kaçışlayabilir veya düz aramayla desenleri kapatabilirsin (1 ilk karakterden başlamak için, true düz arama için):

print(string.find("v1.5", "%."))         -- Çıktı: 3 3
print(string.find("v1.5", ".", 1, true))  -- Çıktı: 3 3
print(string.find("v1.5", "."))          -- Çıktı: 1 1 (. herhangi bir karakterle eşleşir)
challenge icon

Görev

Kolay

Bir startsWithLetter işlevi yazın; bu işlev text 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 ^ sabitleyicisini ve %a karakter sınıfını string.find() ile kullanın.

Parametreler:

  • text (dize): Doğrulanacak dize

Döndürür: Dize bir harfle başlıyorsa true, aksi hâlde false (boolean)

Kendin dene

function startsWithLetter(text)
    -- Kodu buraya yazın
end
quiz iconKendini test et

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

Kendi başına pratik yap: Online Lua derleyicisi