Курс Raku / Регулярні вирази та граматики / Регулярні вирази / Захоплення
Іменовані захоплення
Пронумеровані захоплення зручні, але, коли шаблон розростається,
імена зрозуміліші за числа. Щоб дати захопленню ім’я, запишіть
$<ім'я>=( … ):
if 'Anna:30' ~~ / $<name>=(\w+) ':' $<age>=(\d+) / {
say $<name>; # 「Anna」
say $<age>; # 「30」
}До захоплених шматків тепер дістаються за іменем через
$<name> та $<age> замість
$0 і $1. Це те саме, що записати
$/<name>, бо імена живуть усередині змінної збігу
$/.
Іменовані захоплення роблять шаблон схожим на опис самих даних:
if 'x=5' ~~ / $<key>=(\w+) '=' $<value>=(\w+) / {
say "key is $<key>, value is $<value>"; # key is x, value is 5
}Як і позиційне, кожне іменоване захоплення є об’єктом збігу, тож
$<age>.Str дає звичайний текст, а
$<age>.from — його позицію.
Практика
Виконайте 1 тест за змістом цієї теми.
Навігація курсом
← Тест — Позиційні захоплення | Тест — Захоплення →
💪 Або перейдіть одразу до вправ цього розділу.