Ruby Academy · Leçon

Groupes nommés et ancres

Expressions régulières avancées

Leçon 4 sur 413 étapes

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_captures

Groupes 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
end

Ancres : 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.captures

Tout 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>...) et named_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])
Gratuit pour commencer

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

  1. Littéraux d’expressions régulières
  2. Correspondance et capture
  3. Substitution
  4. Groupes nommés et ancres
← Retour à Ruby Academy