Функции для работы со строками.
Существует несколько простых функций, таких как lc и uc, которые возвращают строку соответственно в нижнем и в верхнем регистре. Еще есть функция length, возвращающая количество символов в данной строке.
Взгляните на пример:
1. use strict;
2. use warnings;
3. use 5.010;
4.
5. my $str = 'HeLlo';
6.
7. say lc $str; # hello
8. say uc $str; # HELLO
9. say length $str; # 5
index
Еще одна функция - index. Она принимает две строки и возвращает положение второй строки внутри первой.
1. use strict;
2. use warnings;
3. use 5.010;
4.
5. my $str = "The black cat jumped from the green tree";
6.
7. say index $str, 'cat'; # 10
8. say index $str, 'dog'; # -1
9. say index $str, "The"; # 0
10. say index $str, "the"; # 26
Первый вызов index вернул 10, потому что строка "cat" начинается на 10 символе. Второй вызов index вернул -1, указывая на то, что в этом предложении нет "dog".
Третий вызов показывает, что index возвращает 0, когда вторая строка стоит в начале первой.
Четвертый пример показывает, что index ищет точное совпадение, так что регистр влияет на ее работу. Поэтому "the" и "The" - не одно и то же.
index() ищет строки, а не слова, так что строку "e " тоже можно найти:
1. say index $str, "e "; # 2
index() также может принимать третий параметр, указывающий на место, откуда начать поиск. Так что, раз мы нашли "e " сначала на 2-м символе первой строки, можно попытаться поискать, начиная с 3-его, чтобы узнать, не встречается ли в этой строке еще "e ":
1. say index $str, "e "; # 2
2. say index $str, "e ", 3; # 28
3. say index $str, "e", 3; # 18
Поиск "e" без пробела даст другой результат.
Наконец, существует еще одна функция под названием rindex (right index, правый индекс), которая начинает поиск с правого конца строки:
1. say rindex $str, "e"; # 39
2. say rindex $str, "e", 38; # 38
3. say rindex $str, "e", 37; # 33
substr
Наверное, самая интересная функция в этой статье это substr. Это, по сути, противоположность index(). Если index() говорит нам, где расположена данная строка, substr возвращает подстроку, расположенную в данном месте. Как правило, substr принимает 3 параметра. Первый - это строка. Второй - это положение (начиная с нуля), также называемое смещение, и третий - длинастроки, которую мы хотим получить.
1. use strict;
2. use warnings;
3. use 5.010;
4.
5. my $str = "The black cat climbed the green tree";
6.
7. say substr $str, 4, 5; # black
substr начинает отсчет с нуля, так что символ со смещением 4 это буква b.
1. say substr $str, 4, -11; # black cat climbed the
Третий параметр (длина) может быть и отрицательным числом. В этом случае он определяет количество символов с правого конца строки, которые НЕ будут включены. Таким образом, предыдущий код значит: отсчитать 4 символа от начала, 11 от конца, и вернуть то, что между ними.
1. say substr $str, 14; # climbed the green tree
Также можно опустить 3-й параметр (длину), что будет значить: вернуть все символы начиная от 14 и до конца строки.
1. say substr $str, -4; # tree
2. say substr $str, -4, 2; # tr
Мы можем использовать отрицательное число в качестве смещения, что будет значить: отсчитать 4 символа с конца и начать оттуда. То есть то же самое, что установить смещение length($str)-4.
Замена части строки.
Последний пример немного стремный. Пока что substr всегда возвращала подстроку и оставляла исходную строку нетронутой. В этом примере возвращаемое значение будет определяться так же, но вдобавок будет изменено содержимое исходной строки!
Возвращаемое значение substr() всегда определяется первыми тремя параметрами, но в данном случае мы передаем еще и четвертый. Это строка, которая заменит подстроку в исходной строке.
1. my $z = substr $str, 14, 7, "jumped from";
2. say $z; # climbed
3. say $str; # The black cat jumped from the green tree
Итак, substr $str, 14, 7, "jumped from" возвращает слово climbed, но, поскольку мы передали четвертый параметр, исходная строка была изменена.
Дата добавления: 2016-04-23; просмотров: 489;