string.find()
Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 37 von 54.
Nachdem du Zeichenklassen verstanden hast, kannst du sie mit string.find() verwenden, um nach Mustern statt nach exakt übereinstimmendem Text zu suchen. Das eröffnet leistungsstarke Möglichkeiten zur Textvalidierung und -analyse.
Die Funktion string.find() funktioniert mit Mustern genauso wie mit literalen Zeichenketten. Sie gibt die Position zurück, an der das Muster zum ersten Mal übereinstimmt:
local text = "User123"
local position = string.find(text, "%d")
print(position) -- Ausgabe: 5Damit wird die erste Ziffer in der Zeichenkette gefunden, die sich an Position 5 befindet. Du kannst auch nach dem Gegenteil suchen, indem du Großbuchstaben-Zeichenklassen verwendest:
local code = "ABC123"
local position = string.find(code, "%D")
print(position) -- Ausgabe: 1Hier stimmt %D mit jedem Nicht-Ziffernzeichen überein, sodass es den ersten Buchstaben an der Position 1 findet.
Eine häufige Validierungsaufgabe besteht darin zu prüfen, ob eine Zeichenkette mit einem bestimmten Muster beginnt. Du kannst den Anker ^ am Anfang eines Musters verwenden, um nur am Anfang der Zeichenkette Übereinstimmungen zu finden:
local username = "player42"
local startsWithLetter = string.find(username, "^%a")
if startsWithLetter then
print("Valid username")
else
print("Username must start with a letter")
endDieses Muster überprüft, ob der string mit einem Buchstaben beginnt, wodurch es sich zur Eingabevalidierung eignet, wenn bestimmte Formate erforderlich sind.
Aufgabe
EinfachSchreibe eine Funktion startsWithLetter, die text übernimmt und zurückgibt, ob der String mit einem Buchstaben beginnt.
Verwende string.find() mit dem Anker ^ und der Zeichenklasse %a, um zu prüfen, ob der String mit einem Buchstaben beginnt.
Parameter:
text(string): Der zu validierende String
Rückgabewert: true, wenn der String mit einem Buchstaben beginnt, andernfalls false (boolean)
Probier es selbst
function startsWithLetter(text)
-- Schreibe hier den Code
end
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Programmablauf
1Fortgeschrittene Tabelleniteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen4Einführung in Metatables
Was ist eine Metatable?setmetatable & getmetatableDie __index-MetamethodeDie __newindex-MetamethodeDie __tostring-MetamethodeArithmetische Metamethoden Teil 1Arithmetische Metamethoden Teil 2Rückblick – Read-Only-Tabelle7Fortgeschrittene String-Manipulation
string.gsub() zur ErsetzungEinführung in String-Musterstring.find()string.match()Iteration mit string.gmatch()Zusammenfassung – Parser für Logdateien2Weitere Funktionen der Tabellenbibliothek
table.concat()Tabellenkonstruktion & unpack()table.sort()Eigene Sortierung mit FunktionenRückblick – Highscore-TabelleÜbe selbstständig: Online-Lua-Compiler