Курс по 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.

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

Разделете име на файл   |   Град и държава