Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Reguläre Ausdrücke / Quantoren

Gieriges und sparsames Matching

Standardmäßig ist ein Quantor gierig: Er trifft so viel, wie er nur kann, ohne dass der Rest des Musters scheitert. Betrachten Sie einen Treffer vom ersten < bis zu einem >:

say '<a><b>' ~~ / '<' .+ '>' /; # 「<a><b>」

Das .+ hat so viel verschlungen, wie es konnte, bis zum letzten >, der Treffer erstreckt sich also über beide Klammerpaare.

Um einen Quantor sparsam zu machen (auch faul oder nicht gierig genannt), setzen Sie ein ? dahinter. Ein sparsamer Quantor trifft so wenig wie möglich:

say '<a><b>' ~~ / '<' .+? '>' /; # 「<a>」

Jetzt hält .+? beim ersten > an, es wird also nur das erste Klammerstück getroffen.

Das nachgestellte ? funktioniert bei jedem Quantor: *? und **? sind ebenfalls sparsam. Gierige und sparsame Fassungen treffen dieselben Arten von Text — sie unterscheiden sich nur darin, wie viel sie nehmen, wenn es eine Wahl gibt.

Praxis

Lösen Sie 1 Quiz zum Inhalt dieses Themas.

Kursnavigation

Der Anzahl-Quantor   |   Quiz — Quantoren


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