Четверг, 28.03.2024, 22:43
Приветствую Вас Гость | RSS
Меню сайта
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Категории раздела
Категории раздела

Каталог статей

Главная » Статьи » Язык программирование Perl » Описание Языка Perl

Работа со строками в Perl


Разделение строки 


С помощью функции split строка может быть разделена 

на несколько частей, называемых подстроками.


split /Шаблон/ строка, ограничение разделяет строку на подстроки.

 

Используя функцию split, интерпретатору Perl необходимо указать разделитель, в соответствии с которым будет определяться место разделения строки.

Полученные в результате разделения подстроки возвращаются в форме списка, при этом разделитель из них удаляется.

Пример:

my splitfunc="Tim:Dino:David:Maya";

@splitList=slit/:/, $splitfunc;

foreach (@splitlist) {print $splitfunc}

Результат будет строка:

TimDinoDavidMaya

Одним из параметров функции split-это ограничение

Его можно задавать целым положительным цислом.


Пример:

$slitfunc="Tim:Dina:David:Maya";

@splitlist=split/:/, $splitfunc, 3;

print "@splitlist";

Результат:

Tim Dina Davi:Maya


Удаление последнего элемента строки

Функции chop и chomp.

Функции языка Perl chop и chomp предназначены для удаления последних символов строк. Наиболее часто эти функции употребляется при работе со строками, которые были считанный из файла или которые предназначены для записи в файлы.

Весьма полезная функция chop используется для того, чтобы удалить последний символ строки. 

Например:

$var="Hello world";

chop($var);

Результат приведенного примера будет: Hello Worl

Обратите внимание в качестве возвращаемой значений этой функции является отброшенный символ(приведенной выше примере Hello World это буква d). Если же применить функцию chop к списку, то она удалит последний символ каждой из входящей в список строк, однако возвратит значение символа, удаленного только лишь из последней строки.                                                                                           Функция chomp во многом похожа на функцию chop однако она удаляет только символы новой строки.

Например:

$var="Hello World\n";

chomp($var);  # Удаление символа новой строки;

Однако существует еще одна, более удобная форма использования chomp каждый раз при введении новой переменной в Perl можно использовать оператор присваивания. Perl сначала выполняет присваивание, а затем использует переменную так, как вы потребуете.

chomp($var=<STDIN>); #Прочитает текст без символа новой строки

$var<STDIN>;

chomp ($var); 


Определение длины строки 

Функция Length

Функция языка Perl length предназначена для определения длины строки, в Perl так же можно найти длину массива, а так же можно вычислить количество элементов, хранящихся в хеше. Если использовать функцию length применитедбно к числовому значению, то Perl автоматически преобразует это числовое значение в строку. Если при использовании функции length не будет указан ее входной параметр то она возвратит длину значения сохраненного в используемой по умолчанию 

специальной переменой $_ 

Например:

$var="Hello World\n";

length $var           #Определяет количество символов в строке.

Для вычисления количество элементов массива следует назначить массиву скалярный контекст с помощью функции scalar 

@array=(element_1 element_2 element_3 element_4);

print scalar(@array); #Будет 4

Для определения количества элементов хеша, его как массива необходимо использовать функции scalar и keys.

Например:

%hash=qw(element_1 element_2 element_3 element_4);

print scalar keys(%hash);


Изменения регистра символов или строки.

lc- преобразует текст строки в нижний регистр.

lcfirst - преобразует первый символ строки в нижний регистр. 

uc - преобразует текст строки в верхний регистр.

ucfirst - преобразует первый символ строки в верхний регистр.

 

Например:

print lc "HELLO WORLD\n";

print lcfirst "HELLO WORLD\n";

А также для изменения регистра текста в символьной строке можно воспользоваться управляющими последовательностями 

\u, \l, \U, \L, и \E.


Форматирование строки функцией sprintf

Функция sprintf служит для форматирования строки и предполагает использование тех же самых правил форматирования, что и функция printf (кроме необязательного файлового дескриптора).

В качестве входных параметров ей необходимо передать два аргумента строку формата и список значений, которые следует форматировать. Правило форматирования указывается с помощью символа процента(%) и символа, определяющего тип форматирования. 

Например:

my $var=sprint "%4d/%02d/%02d %2d:%02d:%02d", $yr, $mo, $da, $h, $m, $s; 

Помимо этого, функция sprintf часто применяется для форматирования чисел с определенным количеством знаков в дробной части.                                       Например, правило форматирования %8s определяет, что соответствующее ему значение будет представлено в виде строки с минимальной длиной, равной 8 символам. Правило форматирования %.2f задает формат числа с плавающей запятой, при этом под его дробную часть отводиться часть два десятичных разряда.

Ниже приведен список обозначений различных правил форматирования, которые могут быть применены к строке с помощью функции sprintf.   


c - один символ, задается кодом ACII.

d - Десятичное целое (2, -5)

е - Экспоненциальное представление числа, нижний регистр(2,53е -19)

Е - Экспоненциальное представление числа, верхний регистр (2,53Е -19)

f - Число с плывающей точкой (450,067)

g - Число с плывающей точкой, экспоненциальное представление, нижний регистр (2,92Е -7)

ld - Длинное десятичное целое (47483647)

lu - Длинное безнаковое десятичное целое (42683201)

lx - Длинное шестнадцатеричное целое (4ad3c2ff)

0 - Восьмиричное целое (276)


Извлечение Подстроки 

Извлечь фрагмент строки можно путем осторожного применения регулярного выражения, но если этот фрагмент всегда находится на известной позиции, такой метод не эффективен. В этом случае удобнее использовать функцию substr.

Например:

$var="Hello World";

print substr($var, 6);

print "\n \n";

Результатом приведенного выше примера будет строка: World

Приведенного выше примера видно что нумерация символов в строке начинается с нуля(0).  Однако минус этой функции - это изменение значения специальной переменной $[ приведет к тому, что нумерация символов строки будет уже не с нуля, а с какого нибудь другого числа. Так же функция substr помимо операции извдечения  подстроки, позволяет указать замещающий эту подстроку текста, а так же длина замещающего текста необязательно должна совпасть с длиной замещаемой подстроки. Что особенно полезно в том случае, когда необходимо изменить содержимое исходной строки. Используя функцию substr, в качестве числа, определяющего позицию подстроки в строке, можно указать отрицательное число. 

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


Категория: Описание Языка Perl | Добавил: Nemo (30.10.2012) | Автор: NUNU E
Просмотров: 1176 | Комментарии: 1 | Теги: Строка, регулярное выражение, строковые операторы | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]