Курс языка программирования Raku / Регулярные выражения и грамматики / Регулярные выражения / Захваты / Exercises / Разберите имя файла
Решение: Разберите имя файла
Вот один из возможных вариантов решения задачи.
Код
if 'report.txt' ~~ / (\w+) '.' (\w+) / {
say ~$0;
say ~$1;
}🦋 Исходный код можно найти в файле split-filename.raku.
Вывод
report
txtКомментарии
Первая пара скобок захватывает основное имя в
$0, вторая — расширение в$1. Точка между ними взята в кавычки, поэтому соответствует именно символу., а не любому символу.Знак
~перед каждым захватом переводит его в строковый контекст, поэтому он печатается как обычный текст. Простоsay $0показал бы объект совпадения в угловых кавычках —「report」. Записьsay $0.Strделает то же, что иsay ~$0.