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

Найдовший токен і перший збіг

Коли дві альтернативи могли б збігтися на одному й тому самому місці, оператор | обирає ту, що зіставляється з найдовшим шматком тексту. Це називають зіставленням за найдовшим токеном:

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

Хоча cat записано першим і воно збіглося б, | віддає перевагу довшому catdog.

Іноді потрібне протилежне — пробувати альтернативи в тому порядку, в якому ви їх записали, і брати першу, що збігається. Саме це робить подвійна риска ||:

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

Тепер cat пробується першим і збігається, тож механізм на цьому зупиняється й ніколи не розглядає catdog.

Використовуйте | (найдовший токен), коли хочете «найкращий» збіг незалежно від порядку, — це звичний вибір, і саме на нього спираються граматики. Використовуйте || (перший збіг), коли порядок альтернатив має значення й ви хочете, щоб перемагали ранніші.

Практика

Виконайте 1 тест за змістом цієї теми.

Навігація курсом

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


💪 Або перейдіть одразу до вправ цього розділу.