0Pricing
Lua Academy · Leçon

string.gsub pour les transformations

Remplacez des motifs par des chaînes, des fonctions ou des recherches dans des tables via gsub.

string.gsub pour les transformations est une leçon Lua Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Lua Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Lua Academy comprend 4 leçons au total.

Qu’est-ce que string.gsub ?

string.gsub(s, pattern, repl, n) remplace les occurrences de pattern dans s par repl. La fonction renvoie la nouvelle chaîne et le nombre de substitutions.

Remplacement simple de chaînes

Remplacez toutes les occurrences d’une sous-chaîne littérale.

local s = "hello world world"
local result, count = s:gsub("world", "Lua")
print(result, count)  -- hello Lua Lua  2

Limiter les remplacements

Transmettez un quatrième argument pour limiter le nombre de remplacements.

local s = "aaa bbb aaa"
print(s:gsub("aaa", "xxx", 1))  -- xxx bbb aaa  1

Remplacement fondé sur un motif

Remplacez tous les chiffres par une chaîne fixe.

local s = "abc 123 def 456"
print(s:gsub("%d+", "NUM"))  -- abc NUM def NUM  2

Remplacement par une fonction

Lorsque repl est une fonction, elle est appelée avec chaque capture (ou avec la correspondance entière), et sa valeur de retour remplace la correspondance.

local s = "price: 100, tax: 15"
local result = s:gsub("%d+", function(n)
  return tostring(tonumber(n) * 1.1)
end)
print(result)  -- price: 110.0, tax: 16.5

Remplacement par une table

Lorsque repl est une table, chaque correspondance (ou capture) sert de clé ; la valeur de la table remplace la correspondance.

local vars = {name="Alice", lang="Lua"}
local tmpl = "Hello, {name}! Welcome to {lang}."
local result = tmpl:gsub("{(%w+)}", vars)
print(result)  -- Hello, Alice! Welcome to Lua.

Supprimer les espaces superflus

Utilisez gsub pour supprimer les espaces superflus au début et à la fin d’une chaîne.

local function trim(s)
  return s:gsub("^%s+", ""):gsub("%s+$", "")
end
print("[" .. trim("  hello  ") .. "]")  -- [hello]

Modifier la casse

Utilisez gsub avec une fonction pour convertir chaque lettre en majuscule ou en minuscule.

local function toUpper(s)
  return s:gsub("%a", string.upper)
end
print(toUpper("hello world"))  -- HELLO WORLD

Échapper les caractères spéciaux

Échappez tous les caractères spéciaux des motifs dans une chaîne afin de pouvoir l’utiliser comme motif littéral.

local function escapePat(s)
  return s:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1")
end

Utiliser la valeur de retour du décompte

La deuxième valeur de retour (le nombre de substitutions) permet de détecter si des remplacements ont été effectués.

local s = "no numbers here"
local result, n = s:gsub("%d+", "X")
if n == 0 then print("nothing replaced") end

Motif pour un moteur de modèles

Un moteur de modèles simple remplace les espaces réservés {{key}} par des valeurs provenant d’une table de données.

local function render(tmpl, data)
  return (tmpl:gsub("{{(%w+)}}", data))
end
print(render("Hi {{name}}!", {name="Bob"}))  -- Hi Bob!

Question sur gsub

Lorsque repl dans gsub est une fonction, que lui transmet-on ?

Récapitulatif : string.gsub

string.gsub est la boîte à outils polyvalente de la transformation de chaînes : elle permet de remplacer par des chaînes, des fonctions (pour les calculs dynamiques) ou des tables (pour les recherches dans un dictionnaire). Elle renvoie également le nombre de substitutions.

Questions Fréquemment Posées

La leçon « string.gsub pour les transformations » est-elle gratuite ?

Oui — le texte complet de « string.gsub pour les transformations » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Lua Academy, passe à CoddyKit PRO. Le cours Lua Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « string.gsub pour les transformations » ?

Remplacez des motifs par des chaînes, des fonctions ou des recherches dans des tables via gsub. Tu pratiques Lua Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Lua Academy ?

Aucune expérience préalable n'est requise. Lua Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « string.gsub pour les transformations » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Lua Academy ?

Oui. Chaque leçon Lua Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Syntaxe des motifs Lua
  2. Captures et string.match
  3. string.gmatch pour la tokenisation
  4. string.gsub pour les transformations
← Retour à Lua Academy