Syntaxe des motifs Lua
Découvrez les classes de caractères %d, %a, %s, les ancres et les quantificateurs des motifs Lua.
Syntaxe des motifs Lua est une leçon Lua Academy gratuite sur CoddyKit. Ceci est la leçon 1 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.
Motifs Lua et expressions régulières
Lua utilise son propre langage de motifs, et non des expressions régulières POSIX complètes. Il est plus simple et plus rapide, mais ne prend pas en charge l’alternance (|) ni les assertions anticipées.
Classes de caractères
%d chiffre, %a lettre, %l minuscule, %u majuscule, %s espace, %p ponctuation, %w alphanumérique. Une majuscule inverse le sens : %D = caractère non numérique.
Quantificateurs
* zéro ou plusieurs (gourmand), + un ou plusieurs, ? zéro ou un, - zéro ou plusieurs (paresseux, correspondance la plus courte).
local s = "hello world"
print(s:match("%a+")) -- hello (first word)
print(s:match(".-o")) -- hell (lazy stops early)Ancres
^ ancre la correspondance au début de la chaîne, $ à la fin.
print(("hello"):match("^h")) -- h
print(("hello"):match("o$")) -- o
print(("hello"):match("^world")) -- nilEnsembles de caractères avec []
Classes de caractères personnalisées : [aeiou] correspond à n’importe quelle voyelle, [^aeiou] à n’importe quel caractère qui n’est pas une voyelle, et [a-z] aux lettres minuscules.
local s = "Hello World 123"
print(s:match("[A-Z]")) -- H
print(s:match("[0-9]+")) -- 123Échapper les caractères spéciaux
Les caractères spéciaux ( ) . % + - * ? [ ^ $ doivent être échappés avec %.
local s = "price: 3.14"
print(s:match("%d+%.%d+")) -- 3.14 (. escaped to match literal dot)Le caractère générique .
. correspond à n’importe quel caractère unique. Combinez-le avec des quantificateurs : .- est la correspondance paresseuse de tout.
print(("abc123"):match("(.-)%d")) -- abc (lazy, stops at first digit)Motif de frontière %f
%f[set] correspond à une position vide entre un caractère qui n’est pas dans set et un caractère qui y est — utile pour les limites de mots.
local s = "hello world foo"
for w in s:gmatch("%f[%a]%a+") do
print(w) -- hello, world, foo
endstring.find et string.match
string.find renvoie les indices de début et de fin (ainsi que les captures). string.match renvoie directement le texte correspondant (ou les captures).
local s = "date: 2025-01-15"
local i, j = s:find("%d%d%d%d%-%d%d%-%d%d")
print(i, j) -- 7 16
print(s:match("(%d+)-(%d+)-(%d+)")) -- 2025 01 15Correspondance équilibrée %b
%bxy correspond à une paire équilibrée de caractères x et y. Par exemple, %b() correspond à des parenthèses équilibrées, y compris lorsqu’elles sont imbriquées.
local s = "func(a, (b+c), d)"
print(s:match("%b()")) -- (a, (b+c), d)Limites des motifs
Les motifs Lua ne prennent pas en charge : l’alternance (a|b), les références arrière, les assertions avant ou arrière, ni les groupes nommés. Pour ces besoins, utilisez LPEG ou une bibliothèque externe d’expressions régulières.
Question sur la syntaxe des motifs
Quel motif correspond à un ou plusieurs chiffres ?
Récapitulatif : syntaxe des motifs Lua
Les motifs Lua utilisent les classes %d %a %s, les quantificateurs * + ? -, les ancres ^ $, les ensembles [] et %b pour les correspondances équilibrées. Ils sont efficaces, mais ne prennent pas en charge l’alternance des expressions régulières.
Questions Fréquemment Posées
La leçon « Syntaxe des motifs Lua » est-elle gratuite ?
Oui — le texte complet de « Syntaxe des motifs Lua » 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 « Syntaxe des motifs Lua » ?
Découvrez les classes de caractères %d, %a, %s, les ancres et les quantificateurs des motifs Lua. 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 1 sur 4.
Combien de temps prend la leçon « Syntaxe des motifs Lua » ?
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
- Syntaxe des motifs Lua
- Captures et string.match
- string.gmatch pour la tokenisation
- string.gsub pour les transformations