Menu
Coddy logo textTech

Einführung in String-Patterns

Teil des Abschnitts Logic & Flow der Lua-Journey von Coddy — Lektion 36 von 54.

Als du string.gsub() in der vorherigen Lektion verwendet hast, hast du nach exaktem Text wie Leerzeichen oder bestimmten Wörtern gesucht. Aber was ist, wenn du „jede Ziffer“ oder „jeden Buchstaben“ finden musst, ohne das genaue Zeichen zu kennen? Hier kommen String-Patterns ins Spiel.

String-Patterns in Lua sind eine Möglichkeit zu beschreiben, nach welcher Art von Text man sucht, anstatt den exakten Text selbst anzugeben. Sie sind einfacher als reguläre Ausdrücke, aber mächtig genug für die meisten Textverarbeitungsaufgaben.

Lua bietet spezielle Codes, sogenannte Zeichenklassen, die Kategorien von Zeichen entsprechen. Hier sind die gängigsten:

%d  -- entspricht jeder Ziffer (0-9)
%a  -- entspricht jedem Buchstaben (a-z, A-Z)
%s  -- entspricht jedem Leerraumzeichen (Leerzeichen, Tabulator, Zeilenumbruch)
%w  -- entspricht jedem alphanumerischen Zeichen (Buchstaben und Ziffern)
%p  -- entspricht jedem Satzzeichen

So könnten Sie diese Muster mit string.find() verwenden, um die erste Ziffer in einem String zu finden:

local text = "Room 42 is available"
local position = string.find(text, "%d")
print(position)  -- Ausgabe: 6

Sie können auch Großbuchstaben-Versionen dieser Klassen verwenden, um das Gegenteil abzugleichen. Zum Beispiel entspricht %D jedem Zeichen, das keine Ziffer ist, und %A entspricht jedem Zeichen, das kein Buchstabe ist.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Funktion containsDigit, die text entgegennimmt und zurückgibt, ob der Text mindestens eine Ziffer enthält.

Verwenden Sie string.find() mit der Zeichenklasse %d, um zu prüfen, ob eine Ziffer im String existiert.

Parameter:

  • text (string): Der Text, der auf Ziffern geprüft werden soll

Rückgabewert: true, wenn der Text mindestens eine Ziffer enthält, andernfalls false (boolean)

Spickzettel

String-Patterns in Lua beschreiben, nach welcher Art von Text Sie suchen, anstatt den exakten Text selbst anzugeben.

Lua bietet spezielle Codes, sogenannte Zeichenklassen (character classes), die Kategorien von Zeichen entsprechen:

%d  -- entspricht jeder Ziffer (0-9)
%a  -- entspricht jedem Buchstaben (a-z, A-Z)
%s  -- entspricht jedem Leerzeichen (Leerzeichen, Tabulator, Zeilenumbruch)
%w  -- entspricht jedem alphanumerischen Zeichen (Buchstaben und Ziffern)
%p  -- entspricht jedem Satzzeichen

Sie können Großbuchstaben verwenden, um das Gegenteil zu finden. Zum Beispiel entspricht %D jedem Zeichen, das keine Ziffer ist, und %A entspricht jedem Zeichen, das kein Buchstabe ist.

Verwendung von Zeichenklassen mit string.find():

local text = "Room 42 is available"
local position = string.find(text, "%d")
print(position)  -- Output: 6

Probier es selbst

function containsDigit(text)
    -- Schreibe hier den Code
end
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logic & Flow