Курс языка программирования Raku / Регулярные выражения и грамматики / Регулярные выражения / Захваты / Exercises / Город и страна
Решение: Город и страна
Вот один из возможных вариантов решения задачи.
Код
if 'London-UK' ~~ / $<city>=(\w+) '-' $<country>=(\w+) / {
say ~$<city>;
say ~$<country>;
}🦋 Исходный код можно найти в файле city-and-country.raku.
Вывод
London
UKКомментарии
$<city>=( … )и$<country>=( … )дают двум захватам имена вместо номеров.После сопоставления их читают обратно как
$<city>и$<country>, а это понятнее, чем$0и$1.Префикс
~переводит каждый захват в строковый контекст, чтобы он печатался как обычный текст; без негоsay $<city>показал бы объект совпадения как「London」.