Курс по Raku / Регулярни изрази и граматики / Регулярни изрази / Алтернативи

Най-дълъг токен и първо съвпадение

Когато две възможности биха могли да съвпаднат на едно и също място, операторът | избира онази, която съпоставя най-дългото парче текст. Това се нарича съпоставяне по най-дълъг токен:

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

Макар cat да е написано първо и да би съвпаднало, | предпочита по-дългото catdog.

Понякога искате обратното — да опитате възможностите в реда, в който сте ги написали, и да вземете първата, която съвпадне. Точно това прави двойната черта ||:

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

Сега cat се опитва първо и съвпада, така че машината спира дотам и никога не разглежда catdog.

Използвайте | (най-дълъг токен), когато искате „най-доброто“ съвпадение независимо от реда — това е обичайният избор и онзи, на който разчитат граматиките. Използвайте || (първо съвпадение), когато редът на възможностите е смислен и искате по-ранните да печелят.

Практика

Направете 1 тест върху съдържанието на тази тема.

Навигация в курса

Тест — Групиране   |   Тест — Алтернативи


💪 Или преминете направо към упражненията в този раздел.