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

Решение: Город и страна

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

Код

if 'London-UK' ~~ / $<city>=(\w+) '-' $<country>=(\w+) / {
    say ~$<city>;
    say ~$<country>;
}

🦋 Исходный код можно найти в файле city-and-country.raku.

Вывод

London
UK

Комментарии

  1. $<city>=( … ) и $<country>=( … ) дают двум захватам имена вместо номеров.

  2. После сопоставления их читают обратно как $<city> и $<country>, а это понятнее, чем $0 и $1.

  3. Префикс ~ переводит каждый захват в строковый контекст, чтобы он печатался как обычный текст; без него say $<city> показал бы объект совпадения как 「London」.

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

Город и страна   |   Сначала фамилия