Курс по 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 тест върху съдържанието на тази тема.
Навигация в курса
← Тест — Позиционни прихващания | Тест — Прихващания →
💪 Или преминете направо към упражненията в този
раздел.