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

Längster Token und erster Treffer

Wenn zwei Alternativen an derselben Stelle treffen könnten, wählt der Operator | diejenige, die das längste Stück Text trifft. Das nennt man longest-token matching:

say 'catdog' ~~ / cat | catdog /; # 「catdog」

Obwohl cat zuerst geschrieben steht und treffen würde, zieht | das längere catdog vor.

Manchmal wollen Sie das Gegenteil — die Alternativen in der geschriebenen Reihenfolge probieren und die erste nehmen, die trifft. Genau das tut der doppelte Strich ||:

say 'catdog' ~~ / cat || catdog /; # 「cat」

Nun wird cat zuerst probiert und trifft, die Maschine hält also dort an und zieht catdog nie in Betracht.

Nehmen Sie | (längstes Token), wenn Sie unabhängig von der Reihenfolge den „besten“ Treffer wollen — das ist die übliche Wahl und diejenige, auf die sich Grammatiken stützen. Nehmen Sie || (erster Treffer), wenn die Reihenfolge der Alternativen bedeutsam ist und frühere gewinnen sollen.

Praxis

Lösen Sie 1 Quiz zum Inhalt dieses Themas.

Kursnavigation

Quiz — Gruppierung   |   Quiz — Alternativen


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