Курс языка программирования Raku / Регулярные выражения и грамматики / Регулярные выражения / Захваты / Exercises / Разберите имя файла

Решение: Разберите имя файла

Вот один из возможных вариантов решения задачи.

Код

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.

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

Разберите имя файла   |   Город и страна