Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Grammatiken / Was ist eine Grammatik

Benannte reguläre Ausdrücke

Bisher haben Sie Muster unmittelbar innerhalb von / … / geschrieben. Sie können einem Muster auch einen Namen geben und es wiederverwenden, genau wie eine Subroutine. Deklarieren Sie eines mit my regex (oder my token, das Sie gleich richtig kennenlernen):

my regex number { \d+ }

Um einen benannten Regex in einem anderen Muster zu verwenden, schreiben Sie seinen Namen in spitzen Klammern, <number>:

my regex number { \d+ }

if '42 cats' ~~ / <number> / {
    say $<number>; # 「42」
}

<number> aufzurufen trifft das Muster und capturt es unter diesem Namen, der getroffene Text steht also als $<number> zur Verfügung — ein benanntes Capture, das Sie umsonst bekommen.

Ein benannter Regex lässt sich in einem Muster mehrfach verwenden. Kommt er mehr als einmal vor, werden die Captures zu einer Liste, die Sie über einen Index erreichen:

my regex num { \d+ }

if '3-4' ~~ / <num> '-' <num> / {
    say $<num>[0]; # 「3」
    say $<num>[1]; # 「4」
}

Benannte Regexes halten Muster lesbar und erlauben es Ihnen, größere aus kleineren, gut benannten Teilen zu bauen. Genau das tut eine Grammatik in größerem Maßstab.

Praxis

Lösen Sie 1 Quiz zum Inhalt dieses Themas.

Kursnavigation

Was ist eine Grammatik   |   Quiz — Benannte reguläre Ausdrücke


💪 Oder springen Sie direkt zu den Übungen dieses Abschnitts.