Иллюстрированный самоучитель по 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

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

    <


    Содержание  Назад  Вперед