Lua:
Extraction de sous-chaînes
How to:
En Lua, pour extraire des sous-chaînes, on utilise string.sub
. Voici comment ça marche :
local phrase = "Bonjour tout le monde!"
local salutation = string.sub(phrase, 1, 7) -- Extrait 'Bonjour'
local cible = string.sub(phrase, 9, 12) -- Extrait 'tout'
print(salutation) -- Affiche 'Bonjour'
print(cible) -- Affiche 'tout'
On précise la position de départ et de fin pour délimiter la sous-chaîne. Si on n’indique pas la fin, ça va jusqu’au bout :
local phrase = "Un autre exemple"
local extrait = string.sub(phrase, 4) -- Extrait 'autre exemple'
print(extrait) -- Affiche 'autre exemple'
Facile, non?
Deep Dive
string.sub
n’a pas toujours existé. Dans les premières versions de Lua, extraire des sous-chaînes était plus rudimentaire. Maintenant, string.sub
fait partie des outils de base de Lua, et il est optimisé pour être rapide et efficace.
Il n’y a pas que string.sub
pour jouer avec les chaînes. On a aussi les expressions régulières via la bibliothèque string.gmatch
, ou les fonctions de recherche et remplacement comme string.find
et string.gsub
. Mais pour les besoins simples, string.sub
suffit et est plus rapide.
La fonction string.sub(s, i, j)
fonctionne en utilisant des indices en base un (le premier caractère est à l’indice 1). Si on met un indice négatif, ça compte à partir de la fin: -1
c’est le dernier caractère, -2
l’avant-dernier, et ainsi de suite.
See Also
- Documentation officielle de Lua sur les chaînes de caractères : https://www.lua.org/manual/5.4/manual.html#6.4
- Tutoriel Lua sur les strings (chaînes de caractères) : https://www.tutorialspoint.com/lua/lua_strings.htm
- D’autres fonctions utiles de manipulation de chaînes : https://www.lua.org/pil/20.html
Ces liens renvoient vers des ressources en anglais. Pour l’instant, il y a moins de documentation en français sur Lua, mais ces sources sont claires et complètes.