Иллюстрированный самоучитель по Perl

Сводка результатов


Изложенное в данном разделе можно суммировать в виде набора правил, которыми следует руководствоваться при работе с регулярными выражениями.

  • Любой одиночный символ, не являющийся метасимволом, представляет самого себя.
  • Специальное значение метасимвола можно отменить, поместив перед ним специальный экранирующий метасимвол "\".
  • Можно определить класс символов, заключив их в квадратные скобки. Если первым после открывающей скобки "[" является символ " ^ ", то вся конструкция обозначает символы, не перечисленные в скобках. Внутри скобок два символа, соединенные знаком "-", определяют диапазон. Чтобы включить в состав класса символ "-", его следует поместить в начале или в конце списка, или экранировать при помощи символа "\".
  • Символы можно задавать при помощи метапоследовательностей, состоящих из символа "\", за оторым следует обычный символ или последовательность символов.
  • Альтернативный выбор задается перечислением альтернативных вариантов, разделенных символом "|". Обычно вся конструкция при этом заключается в круглые скобки.
  • Внутри регулярного выражения можно выделить подобразец, заключив его в круглые скобки. На и-ю конструкцию в скобках можно затем сослаться, используя нотацию \п внутри и $п — вне регулярного выражения.

    В заключение раздела приведем в табл. 10.1 и 10.2 сводку метасимволов и метапоследовательностей, рассмотренных в данной главе.

    Таблица 10.1. Символы, имеющие специальное значение у в регулярных выражениях Perl



    Метасимвол

    Интерпретация

    \

    Отменяет (экранирует) специальное значение следующего за ним метасимвола

    -

    Любой одиночный символ, кроме символа новой строки

    Любой одиночный символ, включая символ новой строки, если в операции сопоставления с образцом задан флаг s

    л

    Обозначает начало строки, если является первым символом образца

    $

    Обозначает конец строки, если является последним символом образца

    I

    Разделяет альтернативные варианты

    [...]

    Любой одиночный символ из тех, которые перечислены в квадратных скобках. Пара символов, разделенных знаком минус, задает диапазон символов. Например, [A-Za-z] задает все прописные и строчные буквы английского алфавита. Если первым символом в скобках является символ " ^ ", то вся конструкция обозначает любой символ, не перечисленный в скобках. Внутри скобок символы ".", "*", "[" и "\" теряют свое специальное значение

    (...)

    Группирование элементов образца в один элемент

    *

    Нуль и более повторений регулярного выражения, стоящего непосредственно перед *

    +

    Одно или более повторений регулярного выражения, стоящего непосредственно перед +

    9

    Одно или ни одного повторения регулярного выражения, стоящего непосредственно перед ?

    { n, m }

    Минимальное n и максимальное m число повторений регулярного выражения, стоящего перед {n, m). Конструкция {n} означает ровно n повторений, (m } — минимум n повторений

    \0nn

    Символ, восьмеричный код которого равен nn

    При выводе производит звуковой сигнал

    Обозначает начало строки

    \b

    Обозначает границы слова.


    Под словом понимается последовательность символов из класса \w (см. ниже). Граница слова определяется как точка между символами из класса \w и символами из класса \w (см. ниже)

    Обозначает не-границы слова

    \сп

    Управляющий символ, который генерируется при нажатии комбинации клавиш <Ctrl>+<N>

    \d

    Любой цифровой символ, то же, что и [0-9]

    \D

    Любой нецифровой символ, то же, что и [ л О-9]

    Символ Esc, ASCII 27

    Ограничитель последовательностей \L, \u, \Q

    \f

    Символ перевода страницы, ASCI1 1 2

    \G

    Обозначает точку, в которой закончился предыдущий поиск m/ /g

    \1

    Преобразует следующий символ регулярного выражения к нижнему регистру

    <


    Таблица 10.2. Метапоследовательности в регулярных выражениях Perl


    Метапоследовательность




    Значение




    \L


    Преобразует все последующие символы в регулярном выражении к нижнему регистру до тех пор, пока не встретится последовательность \Е


    \n


    Символ новой строки, ASCII 10


    \Q


    Эквивалентно экранированию всех последующих метасимволов в регулярном выражении при помощи символа "\" до тех пор, пока не встретится последовательность \Е


    \r


    Символ "возврат каретки", ASCII 1 3


    \s


    Класс пробельных символов: пробел (space), символ табуляции (tab), возврат каретки (carriage return), символ перевода строки (line feed) и символ перевода страницы {form feed); эквивалентное \t,\r,\n, \f]


    \S


    Класс непробельных символов


    \t


    Символ табуляции, ASCII 9


    \u


    Преобразует следующий символ к верхнему регистру


    \U


    Преобразует все последующие символы в регулярном выражении к верхнему регистру до тех пор, пока не встретится последовательность \Е


    \v


    Символ вертикальной табуляции, ASCII i 1


    \w


    Любая буква, цифра или символ подчеркивания


    \W


    Любой символ, не являющийся буквой, цифрой или символом подчеркивания


    \xnn


    Символ, шестнадцатеричный код которого равен пп


    \z


    Обозначает конец строки

     

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