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

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.