Курс языка программирования Raku / Регулярные выражения и грамматики / Грамматики / Что такое грамматика / Exercises / Год и месяц
Решение: Год и месяц
Вот один из возможных вариантов решения задачи.
Код
my regex year { \d ** 4 }
my regex month { \d ** 2 }
if '2025-06' ~~ / <year> '-' <month> / {
say $<year>;
say $<month>;
}🦋 Исходный код можно найти в файле year-token.raku.
Вывод
「2025」
「06」Комментарии
Объявлены два именованных регулярных выражения, каждое описывает один кусочек даты: четырёхзначный
yearи двузначныйmonth.Шаблон соединяет их буквальным дефисом между, и каждое захватывается под собственным именем. Сборка большего шаблона из небольших именованных частей — ровно та идея, которую формализует грамматика.