Курс по Raku / Регулярни изрази и граматики / Регулярни изрази / Заместване и замяна
Прихващания в замяната
Частта за замяна в s/// може да се позовава на
прихващанията, направени от шаблона. Това ви позволява да пренаредите
намерения текст, вместо просто да го изхвърлите.
Например, превърнете дата, записана като година-месец, в
месец/година, като прихванете двете числа и ги върнете в
обратен ред:
my $d = '2025-06';
$d ~~ s/ (\d+) '-' (\d+) /$1\/$0/;
say $d; # 06/2025Шаблонът прихваща годината в $0, а месеца в
$1. В замяната $1 и $0 са
записани в обратен ред, с наклонена черта между тях. (Чертата е
екранирана като \/, за да не бъде взета за край на
заместването.) Забележете, че интервалите са незначещи от страна на
шаблона, но буквални от страна на
замяната, така че замяната е написана без интервали
около нея.
Именуваните прихващания работят по същия начин. Благодарение на това заместването се чете ясно дори когато частите са няколко:
my $name = 'Doe, Jane';
$name ~~ s/ $<last>=(\w+) ', ' $<first>=(\w+) /$<first> $<last>/;
say $name; # Jane DoeНавигация в курса
← Тест — Операторът s/// | Транслитерация →
💪 Или преминете направо към упражненията в този
раздел.