Groupes nommés et ancres
Expressions régulières avancées
Groupes nommés et ancres est une leçon Ruby 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 Ruby Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ruby Academy comprend 4 leçons au total.
Pourquoi utiliser des groupes nommés ?
Les captures numérotées comme m[1] deviennent difficiles à lire lorsqu’un motif s’allonge. Les groupes nommés donnent à chaque capture un libellé explicite.
Syntaxe : (?<name>pattern).
m = /(?<year>\d{4})-(?<month>\d{2})/.match('2026-05')
puts(m[:year])
puts(m[:month])Accéder aux captures nommées
Accédez aux captures nommées avec une clé de type symbole ou chaîne : m[:name]. La méthode named_captures les renvoie toutes sous forme de hachage.
m = /(?<user>\w+)@(?<host>\w+)/.match('alice@mail')
p m.named_capturesGroupes nommés avec =~
Lorsqu’un littéral d’expression régulière contenant des groupes nommés apparaît à gauche de =~, Ruby crée automatiquement des variables locales pour chaque nom.
if /(?<word>\w+)/ =~ 'hello'
puts word
endAncres : début et fin
Les ancres correspondent à des positions plutôt qu’à des caractères :
^début d’une ligne$fin d’une ligne
Elles sont essentielles pour vérifier qu’une entrée complète correspond au motif.
puts(/^abc/.match?('abcdef'))
puts(/def$/.match?('abcdef'))
puts(/^abc$/.match?('abcdef'))Ancres de chaîne \A et \z
^ et $ correspondent aux limites des lignes, ce qui est important pour les chaînes multiligne. Pour désigner la chaîne entière, préférez \A (début) et \z (fin absolue).
text = "first\nsecond"
puts(/^second/.match?(text))
puts(/\Asecond/.match?(text))Valider une entrée complète
Pour vérifier qu’une chaîne entière respecte un format, placez une ancre aux deux extrémités. Les chaînes contenant des caractères supplémentaires sont ainsi rejetées.
zip = /\A\d{5}\z/
puts(zip.match?('34000'))
puts(zip.match?('34000x'))Limites de mots
\b est une limite de mot : la position entre un caractère de mot et un caractère qui n’en est pas un. Elle permet de rechercher des mots entiers sans consommer de caractères.
puts('cat catalog'.scan(/\bcat\b/).length)
puts('cat catalog'.scan(/cat/).length)Anticipation
Une anticipation positive (?=...) vérifie ce qui suit sans l’inclure dans la correspondance. L’anticipation négative s’écrit (?!...).
puts('100 dollars'.match(/\d+(?= dollars)/)[0])
puts('apple pie'.match?(/apple(?! juice)/))Rétrospection
Une rétrospection (?<=...) vérifie ce qui précède la correspondance. La rétrospection négative s’écrit (?<!...).
m = '$42'.match(/(?<=\$)\d+/)
puts(m[0])Groupes non capturants
Vous avez parfois besoin de regrouper des éléments pour une alternance ou des quantificateurs sans vouloir créer de capture. Utilisez (?:...) pour former un groupe non capturant.
m = /(?:Mr|Ms)\. (\w+)/.match('Ms. Lee')
p m.capturesTout combiner
Un validateur réaliste utilise conjointement des ancres, des groupes nommés et des quantificateurs.
re = /\A(?<area>\d{3})-(?<num>\d{4})\z/
m = re.match('555-1234')
puts(m[:area])
puts(m[:num])Vérification rapide
Quelles ancres devez-vous utiliser pour vous assurer qu’une chaîne entière correspond, sans tenir compte des sauts de ligne ?
Récapitulatif : groupes nommés et ancres
Vous maîtrisez désormais les outils avancés des expressions régulières :
- Les groupes nommés
(?<name>...)etnamed_captures - Les ancres
^ $ \A \z \b - L’anticipation
(?=)et(?!), ainsi que la rétrospection(?<=)et(?<!) - Les groupes non capturants
(?:...)
puts(/\A(?<id>\d+)\z/.match('42')[:id])Apprends Ruby avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 29
- Leçons
- 109
Questions Fréquemment Posées
La leçon « Groupes nommés et ancres » est-elle gratuite ?
Oui — le texte complet de « Groupes nommés et ancres » 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 Ruby Academy, passe à CoddyKit PRO. Le cours Ruby Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Groupes nommés et ancres » ?
Expressions régulières avancées Tu pratiques Ruby 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 Ruby Academy ?
Aucune expérience préalable n'est requise. Ruby 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 « Groupes nommés et ancres » ?
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 Ruby Academy ?
Oui. Chaque leçon Ruby 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
- Littéraux d’expressions régulières
- Correspondance et capture
- Substitution
- Groupes nommés et ancres