Курс языка программирования Raku / Регулярные выражения и грамматики / Регулярные выражения / Подстановка и замена

Транслитерация

Когда заменять нужно отдельные символы, а не целый шаблон, используйте оператор транслитерации tr///. Он отображает каждый символ первого набора в символ, стоящий на той же позиции во втором наборе:

my $s = 'hello';
$s ~~ tr/a..z/A..Z/;
say $s; # HELLO

Каждая строчная буква заменяется прописной, стоящей на соответствующей позиции во втором диапазоне, поэтому всё слово переходит в верхний регистр.

Наборы сопоставляются посимвольно. Небольшой пример со сдвигом трёх букв:

my $s = 'abcabc';
$s ~~ tr/abc/xyz/;
say $s; # xyzxyz

Здесь каждая a становится x, каждая by, а каждая cz.

Транслитерация — подходящий инструмент для посимвольных отображений: смены регистра, замены небольшого алфавита или кодирования. Для всего, что зависит от шаблона, а не от отдельных символов, берите s///.

Практика

Пройдите 1 тест по содержанию этой темы.

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

Захваты в замене   |   Тест — Подстановка


💪 Или перейдите сразу к упражнениям этого раздела.