Курс Raku / Регулярні вирази та граматики / Регулярні вирази / Захоплення / Вправи / Розберіть ім’я файлу

Розв’язання: Розберіть ім’я файлу

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

Код

if 'report.txt' ~~ / (\w+) '.' (\w+) / {
    say ~$0;
    say ~$1;
}

🦋 Вихідний код можна знайти у файлі split-filename.raku.

Вивід

report
txt

Коментарі

  1. Перша пара дужок захоплює базове ім’я в $0, друга — розширення в $1. Крапку між ними взято в лапки, щоб вона зіставлялася з літеральною ., а не з будь-яким символом.

  2. ~ перед кожним захопленням ставить його в рядковий контекст, тож воно виводиться як звичайний текст. Просте say $0 натомість показало б об’єкт збігу з його кутовими дужками — 「report」. Запис say $0.Str робить те саме, що й say ~$0.

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

Розберіть ім’я файлу   |   Місто і країна