Добро пожаловать на наш сайт!

Сайт посвящен компьютерам, софту, программированию и вообще информационным технологиям.

Надеямся Вам у нас понравится.

 
 

Меню сайта

 
Введение в Perl

Для обозначения последовательности применяйте модификаторы. Так:
\w+– слово
\d+– целое число
[+-]?\d+ – целое со знаком
[+-]?\d+\.?\d* – число с точкой
Кроме того существуют мнимые метасимволы. Обозначающие не существующие символы в месте смены значения. Такие как:
\b – граница слова
\B – не граница слова
\A – начало строки
\Z – конец строки
\G – конец действия
m//g
Граница слова (\b) – это мнимая точка между символами \w и \W.
Внутри класса символов '\b' обозначает символ backspace (стирания).
Метасимволы \A и \Z – аналогичны '^' и '$' но если началостроки '^' и конец строки '$' действуют для каждой строки в многосторочной строке то \A и \Z обозначают начало и конец всей многосторчной строки.
Если внутри шаблона применяется группировка (круглые скобки) то номер подстроки группы обозначается как '\цифра'.
Заметьте что за шаблоном в пределах выражения или блока эти группы обозначаются как '$цифра'. Кроме этого существуют дополнительные переменные:
$+ – обозначает последнее совпадение
$& – все совпадение
$` – все до совпадения
$' – все после совпадения
Пример:
$s = «Один 1 два 2 и три 3»;
if ($s =~ /(\d+)\D+(\d+)/)
{
print «$1\n»; # Результат '1'
print «$2\n»; # '2'
print «$+\n»; # '2'
print «$&\n»; # '1 два 2'
print «$`\n»; # 'Один '
print «$'\n»; # ' и три 3'
}
Перл версии 5 содержит дополнительные конструкции шаблонов:
(?#комментарий)– комментарий в теле шаблона.
(?:шаблон) – группировка как и '( )' но без обратной ссылки
(?=шаблон) – «заглядывание» вперед.
Например 
/\w+(?=\t)/соответствует слову за которым идет табуляция но символ '\t' не включается в результат.
Пример:
$s = «1+2-3*4»;
if ($s =~ /(\d)(?=-)/) # Наити цифру за которой стоит '-'
{
print «$1\n»; # Результат '2'
}
else { print «ошибка поиска\n»;}
(?!шаблон) – «заглядывание» вперед по отрицанию.
Пример:
$s = «1+2-3*4»;
if ($s =~ /(\d)(?!\+)/) # Наити цифру за которой не стоит '+'
{
print «$1\n»; # Результат '2'
}
else { print «ошибка поиска\n»;}
(?ismx)– «внутренние» модификаторы.

Hosted by uCoz