Курс по Raku / Регулярни изрази и граматики / Граматики / Какво е граматика
Именувани регулярни изрази
Досега писахте шаблони направо вътре в / … /. Можете
също да дадете на шаблона име и да го използвате
повторно, също като подпрограма. Декларирайте такъв с
my regex (или с my token, с който ще се
запознаете както трябва скоро):
my regex number { \d+ }За да използвате именуван регулярен израз вътре в друг шаблон,
напишете името му в ъглови скоби — <number>:
my regex number { \d+ }
if '42 cats' ~~ / <number> / {
say $<number>; # 「42」
}Извикването на <number> и съпоставя шаблона,
и го прихваща под това име, така че съвпадналият текст
е достъпен като $<number> — именувано прихващане,
което получавате безплатно.
Именуван регулярен израз може да се използва няколко пъти в един шаблон. Когато се появи повече от веднъж, прихващанията стават списък, до който се стига по индекс:
my regex num { \d+ }
if '3-4' ~~ / <num> '-' <num> / {
say $<num>[0]; # 「3」
say $<num>[1]; # 「4」
}Именуваните регулярни изрази държат шаблоните четими и ви позволяват да строите по-големи от по-малки, добре именувани части. Точно това прави и граматиката, само в по-голям мащаб.
Практика
Направете 1 тест върху съдържанието на тази тема.
Навигация в курса
← Какво е граматика | Тест — Именувани регулярни изрази →
💪 Или преминете направо към упражненията в този
раздел.