Lua, Strings und Rezepte

Ich hab gerade wieder ein bisschen mit Lua herum gespielt* und musste diesmal ein paar Strings manipulieren. Genauer gesagt: Ich wollte lediglich die ersten 4 Chars aus einem String extrahieren und vergleichen.
Eigentlich kein Problem, dachte ich. In anderen Sprachen wäre das schnell getan, aber in Lua habe ich mich schwer getan.

Anfragen in Google wie „Lua get first character“ brachten wenig hilfreiche Ergebnisse.
Es kam oft Pattern-Matching auf, aber für so eine triviale Aufgabe kam mir das so vor, als wenn ich mit Kanonen auf Spatzen schießen würde.

Am Ende war es doch so einfach wie gedacht. Die Suche nach „Lua split string“ brachte mich zu einem Beitrag auf Stackoverflow, wo jemand diese Seite hier verlinkte:

http://lua-users.org/wiki/StringRecipes

Dort werden allerhand Kochrezepte für String-Verarbeitung in Lua veröffentlicht.
Die Funktion, die ich suchte, sieht so aus:

function string.startsWith(ourstring, start)
   return string.sub(ourstring, 1, string.len(start) ) == start
end

Dort wird der Substring ab Position 1 (Indizes in Lua beginnen mit 1) bis zur Position len(start) extrahiert und mit unserem String verglichen, den wir als zweiten Parameter übergeben haben.

Vielleicht hilft es jemandem weiter.

* Ich schreibe Skripte in Lua für den Nginx-Webserver. Dafür benutze ich das tolle Modul https://github.com/openresty/lua-nginx-module. Falls es jemand nicht kennt, unbedingt anschauen!
Man kann damit die Funktionalität direkt in Nginx erweitern, indem zur Laufzeit Lua-Skripte geladen werden. Dadurch entfällt oft die Notwendigkeit eine eigenständige Applikation im Hintergrund laufen zu lassen.
Mehr Informationen dazu findet man auf der Seite von OpenResty (ein vollständiger Appliationsserver auf Basis von Nginx + Lua) oder zum Beispiel im Blog von Cloudflare: https://blog.cloudflare.com/pushing-nginx-to-its-limit-with-lua/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

÷ one = five