|
Добро пожаловать на наш сайт! |
Сайт посвящен компьютерам, софту, программированию и вообще информационным технологиям.
Надеямся Вам у нас понравится. |
|
|
|
|
|
|
|
|
|
|
Введение в 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)– «внутренние» модификаторы.
|
|
|