Регулярные выражения для поиска и замены строк
До сих пор вы использовали операторы, проверяющие на соответствие образцу. Оказывается, Perl поддерживает два других регулярных выражения, которые модифицируют проверяемую строковую переменную. В записанной дальше инструкции Perl замещает часть строки, которая соответствует образцу, на заданную строку:
$str =~ s/pattern/replacement/;
Например, следующая инструкция заменит слово <colour> на <color> :
$str =~ s/\bcolour\b/color/;
Небольшая модификация позволяет заменить все слова на :
$str =~ s/\bcolour\b/color/g;
В данном случае g в конце выражения указывает языку Perl на необходимость глобальной подстановки.
Используя суффикс i, можно задать выполнение поиска с учётом регистра. В противоположность простой проверке на соответствие образцу, следующее выражение осуществляет также и замену:
$str =~ tr/SearchList/ReplacementList/;
Например, замена всех символов нижнего регистра теми же символами верхнею регистра может быть осуществлена таким образом:
$str =~ tr/a-z/A-Z/; # меняет регистр, с нижнего на верхний
Проанализируйте сами следующий пример:
$letters = "abcde"; print "$letters\n" # Выведет abcde $letters =~ tr/a-z/A-Z/; print "$letters\n" # Выведет ABCDE
1 2 3
8 8 8
| |