Курс Raku / Регулярні вирази та граматики / Граматики / Дерево розбору, make і made / Вправи / Витягніть число

Розв’язання: Витягніть число

Ось одне з можливих розв’язань задачі.

Код

grammar Weight {
    token TOP    { <number> 'kg' { make $<number>.Int } }
    token number { \d+ }
}

say Weight.parse('5kg').made;

🦋 Знайдіть програму у файлі extract-the-number.raku.

Вивід

5

Коментарі

  1. Шаблон зіставляється з цифрами та літеральним kg, але вбудований блок зберігає лише $<number>.Int — ціле число, без одиниці.

  2. made читає це значення назад: справжню 5, готову до обчислень, а не текст 5kg. Це типова робота make — перетворити збіг на чисте значення, якого ви насправді хочете.

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

Витягніть число   |   Перемножте пару