Курс языка программирования Raku / Регулярные выражения и грамматики / Грамматики / Что такое грамматика / Exercises / Переиспользуйте токен
Решение: Переиспользуйте токен
Вот один из возможных вариантов решения задачи.
Код
my regex word { \w+ }
if 'cat dog' ~~ / <word> ' ' <word> / {
say $<word>[0];
say $<word>[1];
}🦋 Исходный код можно найти в файле reuse-a-token.raku.
Вывод
「cat」
「dog」Комментарии
Одно и то же именованное регулярное выражение
wordвызывается в шаблоне дважды.Когда именованный захват встречается больше одного раза, результаты образуют список, поэтому их читают как
$<word>[0]и$<word>[1].