Курс по 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 тест върху съдържанието на тази тема.

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

Какво е граматика   |   Тест — Именувани регулярни изрази


💪 Или преминете направо към упражненията в този раздел.