Menu
Coddy logo textTech

string.find()

Coddy'nin Lua Journey'sinin Logic & Flow bölümünün bir parçası — ders 37 / 54.

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() fonksiyonu, desenlerle tıpkı düz metin dizeleriyle 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, dizedeki 5. konumda bulunan ilk rakamı bulur. Büyük harf karakter sınıflarını kullanarak tam tersini de arayabilirsiniz:

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 desenle başlayıp başlamadığını kontrol etmektir. Yalnızca dizenin başında eşleşme sağlamak için bir desenin başına ^ tutturucusunu (anchor) ekleyebilirsiniz:

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 desen, dizginin bir harfle başlayıp başlamadığını kontrol eder; bu da onu belirli formatların gerekli olduğu girdi doğrulama işlemleri için kullanışlı hale getirir.

challenge icon

Görev

Kolay

text parametresini alan ve dizenin bir harfle başlayıp başlamadığını döndüren bir startsWithLetter fonksiyonu yazın.

Dizenin bir harfle başlayıp başlamadığını kontrol etmek için ^ çapası ve %a karakter sınıfı ile birlikte string.find() kullanın.

Parametreler:

  • text (string): Doğrulanacak dize

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

Kopya kağıdı

Dizelerdeki kalıpları aramak için karakter sınıflarıyla birlikte string.find() kullanın. 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ı: 5

Büyük harf karakter sınıfları tam tersiyle (eşleşmeyen karakterler) eşleşir:

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

Yalnızca dizenin başında eşleşme sağlamak için bir kalıbın başında ^ tutturucusunu (anchor) kullanın:

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

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

Kendin dene

function startsWithLetter(text)
    -- Kodunuzu 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.

Logic & Flow bölümündeki tüm dersler