Курс по Raku / Регулярни изрази и граматики / Регулярни изрази / Съпоставяне на низове
Обектът на съвпадението
Когато регулярният израз съвпадне, интелигентното съпоставяне връща
обект на съвпадението. Същият обект се съхранява автоматично и
в специалната променлива $/, наричана понякога
„променливата на съвпадението“.
Обектът на съвпадението е много повече от отговор с „да“ или „не“.
Като низ той е текстът, който е съвпаднал — било с метода
.Str, било с префикса ~, който е операторът за
преобразуване в низ и прави точно същото:
my $m = 'concatenate' ~~ /cat/;
say $m.Str; # cat
say ~$m; # catТой знае и къде в низа е намерено съвпадението.
Методът .from дава позицията, на която започва, а
.to — позицията непосредствено след края му:
my $m = 'room 7 left' ~~ /\d/;
say $m.Str; # 7
say $m.from; # 5
say $m.to; # 6Позициите се броят от нула, така че цифрата 7 стои на
индекс 5.
Когато регулярният израз не съвпадне, резултатът
изобщо не е обект на съвпадението — той е специалната стойност
Nil. Присвояването на Nil на скалар го оставя
недефиниран:
my $m = 'abc' ~~ /z/;
say $m.defined; # FalseЗатова винаги можете да проверите .defined (или просто
да използвате стойността в булев контекст), преди да прочетете
съвпадналия текст.
Практика
Направете 1 тест върху съдържанието на тази тема.
Навигация в курса
← Тест — Интелигентно съпоставяне | Тест — Съпоставяне →
💪 Или преминете направо към упражненията в този
раздел.