string.find()
Fait partie de la section Logique et flux du Journey Lua de Coddy. Leçon 37 sur 54.
Maintenant que tu comprends les classes de caractères, tu peux les utiliser avec string.find() pour rechercher des motifs au lieu d’un texte exact. Cela ouvre de puissantes possibilités pour la validation et l’analyse de texte.
La fonction string.find() fonctionne de la même manière avec les motifs qu’avec les chaînes littérales. Elle renvoie la position où le motif correspond pour la première fois :
local text = "User123"
local position = string.find(text, "%d")
print(position) -- Sortie : 5Cela trouve le premier chiffre dans la chaîne, qui se trouve à la position 5. Vous pouvez également rechercher l’opposé en utilisant des classes de caractères en majuscules :
local code = "ABC123"
local position = string.find(code, "%D")
print(position) -- Sortie : 1Ici, %D correspond à tout caractère non numérique ; il trouve donc la première lettre à la position 1.
Une tâche courante de validation consiste à vérifier si une chaîne commence par un motif spécifique. Vous pouvez utiliser l’ancre ^ au début d’un motif pour effectuer une correspondance uniquement au début de la chaîne :
local username = "player42"
local startsWithLetter = string.find(username, "^%a")
if startsWithLetter then
print("Valid username")
else
print("Username must start with a letter")
endCe motif vérifie si la chaîne commence par une lettre, ce qui le rend utile pour la validation des entrées lorsque certains formats sont requis.
Défi
FacileÉcrivez une fonction startsWithLetter qui prend text et renvoie si la chaîne commence par une lettre.
Utilisez string.find() avec l’ancre ^ et la classe de caractères %a pour vérifier si la chaîne commence par une lettre.
Paramètres :
text(string) : La chaîne à valider
Renvoie : true si la chaîne commence par une lettre, false sinon (boolean)
Essayez vous-même
function startsWithLetter(text)
-- Écrivez le code ici
end
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et flux
1Itération avancée des tables
Itérer avec pairs()Itérer avec ipairs()pairs() contre ipairs()Récapitulatif - Fiche de personnage4Introduction aux métatables
Qu’est-ce qu’une métatable ?setmetatable et getmetatableLa metaméthode __indexLa metaméthode __newindexLa metaméthode __tostringMétaméthodes arithmétiques - Partie 1Métaméthodes arithmétiques - Partie 2Récapitulatif - Table en lecture seule7Manipulation avancée des chaînes
string.gsub() pour la substitutionIntroduction aux motifs de chaînesstring.find()string.match()Itérer avec string.gmatch()Récapitulatif - Analyseur de fichiers journaux2Fonctions supplémentaires de la bibliothèque table
table.concat()construction de tables et unpack()table.sort()Tri personnalisé avec des fonctionsRécapitulatif - Tableau des meilleurs scores3Concepts avancés des fonctions
Retourner plusieurs valeursFonctions variadiques (...)Les fonctions comme valeurs de première classeFonctions anonymesQu’est-ce qu’une fermeture ?Récapitulatif - Gestionnaire d’événements simpleEntraînez-vous par vous-même : Compilateur Lua en ligne