
- •Регулярные выражения
- •Метасимволы
- •Метапоследовательности
- •Обратные ссылки
- •Операции с регулярными выражениями
- •Операция поиска
- •Операция замены
- •Операция транслитерации
- •Операция заключения в кавычки qr//
- •Функции для работы со строками Функция length()
- •Функция pos ()
- •Функция chop()
- •Функция join()
- •Функция split()
- •Функция index ()
- •Функция rindex ()
- •Функция substr( )
- •Функции lс(), uc(), lcfirst(), ucfirst()
- •Расширенный синтаксис регулярных выражений
Функция chop()
chop [<список>]
удаляет последний символ из всех элементов списка, возвращает последний удаленный символ. Список может состоять из одной строки.
Если аргумент отсутствует, операция удаления последнего символа применяется к встроенной переменной $_. Обычно применяется для удаления завершающего символа перевода строки, остающегося при считывании строки из входного файла.
Функция join()
join <выражение>, <список>
объединяет отдельные строки списка в одну, используя в качестве разделителя строк значение выражения, и возвращает эту строку.
Функция split()
split [/<образец>/[, <строка> [, <лимит>]]]
разбивает строку на отдельные строки, используя в качестве разделителя образец. В списковом контексте возвращает массив полученных строк, в скалярном контексте — их число.
Если функция split() вызывается в скалярном контексте, выделяемые строки помещаются в предопределенный массив @_. Об этом не следует забывать, так как массив @_ обычно используется для передачи параметров в подпрограмму, и обращение к функции split() неявно в скалярном контексте эти параметры уничтожит.
Параметр <лимит> задает максимальное количество строк, на которое может быть разбита исходная строка.
Если строка не задана, то используется $_. Если не задан образец, то строка разбивается по пробельным символам.
Пример - pr_chop_split_join.pl
$_ = <>; chop; print "Число полей во входной строке '$_' равно ", $n=split; print "\nВходная строка разбита на строки:\n"; foreach $i (@_) { print $i . "\n"; } print "Объединение списка строк в одну строку через '+':\n"; $joined = join "+", @_; print "$joined\n";
Функция chop без параметров применяется к переменной $_. В операции print вторым операндом является выражение $n=split;, в котором функция split вызывается в скалярном контексте и без параметров. Поэтому она применяется по умолчанию к переменной $_. В качестве разделителей полей по умолчанию используется множество пробельных символов, а результат помещается в массив @_. Затем к массиву @_ применяется функция join, объединяющая строки-элементы массива в одну строку.
Если ввести строку 'раз два три', то вывод будет иметь вид:
Число полей во входной строке 'раз два три' равно 3 Входная строка разбита на строки: раз два три Объединение списка строк в одну строку через '+': раз+два+три
Функция index ()
index <строка>, <подстрока>[, <позиция>]
возвращает позицию первого вхождения указанной подстроки в заданную строку или -1, если подстрока не найдена. Если задан параметр <позиция>, то поиск подстроки осуществляется, начиная с заданной позиции в строке (0 – начало строки).
Предопределенная переменная $ [ содержит индекс первого элемента в массиве и первого элемента в строке. По умолчанию ее значение равно 0. В принципе его можно изменить, но делать это не рекомендуется. Таким образом, по умолчанию значение параметра ПОЗИЦИЯ полагается равным 0.
Функция rindex ()
rindex <строка>, <подстрока>[, <позиция>]
возвращает позицию последнего вхождения указанной подстроки в заданную строку или -1, если подстрока не найдена. Если задан параметр <позиция>, то поиск подстроки осуществляется до заданной позиции в строке (включая символ в этой позиции).