Perl - статьи

ba2f5a3f

Одиночные символы


В регулярном выражении любой символ соответствует самому себе, если только он не является метасимволом со специальным значением (такими метасимволами являются \, |, (, ), [, {, *, +, ^, $, ? и .). В следующем примере проверяется, не ввел ли пользователь команду "quit" (и если это так, то прекращаем работу программы):

while(<>){ if(m/quit/){exit;} }

Правильнее проверить, что введенное пользователем слово "quit" не имеет со-седних слов, изменяющих смысл предложения. (Например, программа выполнит заведомо неверное действие, если вместо "quit" пользователь введет команду "Don't quit!".) Это можно сделать с помощью метасимволов ^ и $. Заодно, что-бы сравнение было нечувствительно к разнице между прописными и заглавными буквами, используем модификатор i:

while (<>) {if (m/^quit$/i) {exit;} }

Кроме обычных символов perl определяет специальные символы. Они вводятся с помощью обратной косой черты (escape-последовательности) и также могут встречаться в регулярном выражении:

  • \077 - восьмеричный символ,
  • \а - символ BEL (звонок),
  • \с[ - управляющие символы (комбинация Ctrl + символ, в данном случае это управляющий символ ESC),
  • \d - соответствует цифре,
  • \D - соответствует любому символу, кроме цифры,
  • \е - символ escape (ESC),
  • \Е - конец действия команд \L, \U и \Q,
  • \f - символ прогона страницы (FF),


  • \1 - следующая литера становится строчной (lowercase),
  • \L - все последующие литеры становятся строчными вплоть до командй \Е,
  • \n - символ новой строки (LF, NL),
  • \Q - вплоть до команды \Е все последующие метасимволы становятся обычными символами,
  • \r - символ перевода каретки (CR),
  • \s - соответствует любому из "пробельных символов" (пробел, вертикальная , или горизонтальная табуляция, символ новой строки и т. д.),
  • \S - любой символ, кроме "пробельного",
  • \t - символ горизонтальной табуляции (НТ, TAB),
  • \u - следующая литера становится заглавной (uppercase),
  • \U - все последующие литеры становятся заглавными вплоть до команды \E,

  • \v - символ вертикальной табуляции (VT),


  • \w - алфавитно-цифровой символ ( любая буква, цифра или символ подчеркивания),


  • \W - любой символ, кроме букв, цифр и символа подчеркивания,


  • \x1B - шестнадцатиричный символ.


  • Bat также можете "защитить" любой метасимвол, то есть заставить perl рассматривать его как обыкновенный символ, а не как команду, поставив перед метасимволом обратную косую черту \. Обратите внимание на символы типа \w, \d и \s, которые соответствуют не одному, а любому символу из некоторой группы. Также заметьте, что один такой символ, указанный в шаблоне, соответствует ровно одному символу проверяемой строки. Поэтому для задания шаблона, соответствующего, например, слову из букв, цифр и символов подчеркивания, надо использовать конструкцию \w+, как это сделано в следующем примере:

    $text = "Here is some text." $text =~ s/\w+/There/; print $text; There is some text.


    Содержание раздела