Menu
Coddy logo textTech

string.gsub() pour la substitution

Fait partie de la section Logic & Flow du Journey Lua de Coddy — leçon 35 sur 54.

Lorsque vous travaillez avec des chaînes de caractères, vous avez souvent besoin de rechercher et de remplacer du texte. La fonction string.gsub() de Lua facilite cette tâche en effectuant une substitution globale — en trouvant toutes les occurrences d'un motif et en les remplaçant par autre chose.

La syntaxe de base prend trois arguments : la chaîne d'origine, le motif à rechercher et le texte de remplacement :

local result = string.gsub(originalString, pattern, replacement)

Voici un exemple simple qui remplace tous les espaces par des tirets bas :

local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned)  -- Résultat : hello_world_from_lua

La fonction renvoie deux valeurs : la chaîne modifiée et le nombre de remplacements effectués. Vous pouvez capturer les deux si nécessaire :

local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result)  -- Sortie : baz bar baz
print(count)   -- Sortie : 2

Contrairement à certaines fonctions de chaîne qui ne trouvent que la première correspondance, string.gsub() remplace chaque occurrence par défaut, ce qui la rend parfaite pour les tâches de nettoyage de texte comme la suppression de caractères indésirables ou la standardisation du formatage.

challenge icon

Défi

Facile

Écrivez une fonction cleanText qui prend text et renvoie une version nettoyée avec tous les espaces remplacés par des underscores.

Utilisez string.gsub() pour remplacer chaque caractère d'espace dans le texte par un caractère underscore.

Paramètres :

  • text (string) : Le texte à nettoyer

Retourne : Le texte avec tous les espaces remplacés par des underscores (string)

Aide-mémoire

La fonction string.gsub() effectue une substitution globale en trouvant toutes les occurrences d'un motif et en les remplaçant :

local result = string.gsub(originalString, pattern, replacement)

Exemple de remplacement des espaces par des tirets bas :

local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned)  -- Résultat : hello_world_from_lua

La fonction retourne deux valeurs : la chaîne modifiée et le nombre de remplacements effectués :

local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result)  -- Résultat : baz bar baz
print(count)   -- Résultat : 2

string.gsub() remplace chaque occurrence par défaut, pas seulement la première correspondance.

Essayez vous-même

function cleanText(text)
    -- Écrivez le code ici
end
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow