0Pricing
Ruby Academy · Lektion

Benannte Gruppen und Anker

Fortgeschrittene Regex

Benannte Gruppen und Anker ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum benannte Gruppen?

Nummerierte Erfassungen wie m[1] werden schwer lesbar, wenn ein Muster wächst. Benannte Gruppen geben jeder Erfassung eine aussagekräftige Bezeichnung.

Syntax: (?<name>pattern).

m = /(?<year>\d{4})-(?<month>\d{2})/.match('2026-05')
puts(m[:year])
puts(m[:month])

Auf benannte Erfassungen zugreifen

Greifen Sie mit einem Symbol- oder String-Schlüssel auf benannte Erfassungen zu: m[:name]. Die Methode named_captures gibt alle als Hash zurück.

m = /(?<user>\w+)@(?<host>\w+)/.match('alice@mail')
p m.named_captures

Benannte Gruppen mit =~

Wenn ein Regex-Literal mit benannten Gruppen links von =~ steht, erstellt Ruby automatisch lokale Variablen für jeden Namen.

if /(?<word>\w+)/ =~ 'hello'
  puts word
end

Anker: Anfang und Ende

Anker finden Positionen statt Zeichen:

  • ^ Anfang einer Zeile
  • $ Ende einer Zeile

Sie sind entscheidend, um zu validieren, dass eine gesamte Eingabe dem Muster entspricht.

puts(/^abc/.match?('abcdef'))
puts(/def$/.match?('abcdef'))
puts(/^abc$/.match?('abcdef'))

String-Anker \A und \z

^ und $ finden Zeilengrenzen, was bei mehrzeiligen Zeichenketten wichtig ist. Für die gesamte Zeichenkette sollten Sie \A (Anfang) und \z (absolutes Ende) bevorzugen.

text = "first\nsecond"
puts(/^second/.match?(text))
puts(/\Asecond/.match?(text))

Vollständige Eingaben validieren

Um zu prüfen, ob eine gesamte Zeichenkette einem Format entspricht, verankern Sie beide Enden. Dadurch werden Zeichenketten mit zusätzlichen Zeichen abgewiesen.

zip = /\A\d{5}\z/
puts(zip.match?('34000'))
puts(zip.match?('34000x'))

Wortgrenzen

\b ist eine Wortgrenze: die Position zwischen einem Wortzeichen und einem Nicht-Wortzeichen. Sie findet ganze Wörter, ohne Zeichen zu verbrauchen.

puts('cat catalog'.scan(/\bcat\b/).length)
puts('cat catalog'.scan(/cat/).length)

Lookahead

Ein positiver Lookahead (?=...) prüft, was als Nächstes kommt, ohne es in den Treffer aufzunehmen. Ein negativer Lookahead ist (?!...).

puts('100 dollars'.match(/\d+(?= dollars)/)[0])
puts('apple pie'.match?(/apple(?! juice)/))

Lookbehind

Ein Lookbehind (?<=...) prüft, was dem Treffer vorausgeht. Ein negativer Lookbehind ist (?<!...).

m = '$42'.match(/(?<=\$)\d+/)
puts(m[0])

Nicht erfassende Gruppen

Manchmal benötigen Sie Gruppierung für Alternativen oder Quantifizierer, möchten aber keine Erfassung. Verwenden Sie (?:...) für eine nicht erfassende Gruppe.

m = /(?:Mr|Ms)\. (\w+)/.match('Ms. Lee')
p m.captures

Alles zusammenführen

Ein realistischer Validator verwendet Anker, benannte Gruppen und Quantifizierer gemeinsam.

re = /\A(?<area>\d{3})-(?<num>\d{4})\z/
m = re.match('555-1234')
puts(m[:area])
puts(m[:num])

Kurzer Test

Welche Anker sollten Sie verwenden, um sicherzustellen, dass eine gesamte Zeichenkette unabhängig von Zeilenumbrüchen dem Muster entspricht?

Zusammenfassung: Benannte Gruppen und Anker

Sie beherrschen nun fortgeschrittene Regex-Werkzeuge:

  • Benannte Gruppen (?<name>...) und named_captures
  • Anker ^ $ \A \z \b
  • Lookahead (?=) / (?!) und Lookbehind (?<=) / (?<!)
  • Nicht erfassende Gruppen (?:...)
puts(/\A(?<id>\d+)\z/.match('42')[:id])

Häufig gestellte Fragen

Ist die Lektion „Benannte Gruppen und Anker“ kostenlos?

Ja — der vollständige Text von „Benannte Gruppen und Anker“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Benannte Gruppen und Anker“?

Fortgeschrittene Regex Du übst Ruby Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Ruby Academy zu starten?

Keine Vorkenntnisse erforderlich. Ruby Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Benannte Gruppen und Anker“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Ruby Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ruby Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Regex-Literale
  2. Abgleichen und Capturing
  3. Ersetzen
  4. Benannte Gruppen und Anker
← Zurück zu Ruby Academy