Шаг 98.
Регулярные выражения. Метапоследовательности
На этом шаге мы перечислим метапоследовательности.
Символ "\", непосредственно предшествующий одному из метасимволов, отменяет специальное значение
последнего. Если же "\" непосредственно предшествует обычному символу, то, напротив, такая последовательность
во многих случаях приобретает специальное значение. Подобного рода последовательности будем называть
метапоследовательностями. Метапоследовательности в регулярном выражении служат, в основном, для
представления отдельных символов, их классов или определенного места в строке, дополняя и иногда дублируя
функции метасимволов. Рассмотрим существующие метапоследовательности.
- \nnn - представляет символ, восьмеричный код которого равен nnn. Например, последовательность
\120\145\162\154 представляет слово Perl (\120 - восьмеричный код буквы Р, \145- буквы е,
\162- буквы r, \154- буквы l);
- \xnn - представляет символ, шеснадцатеричный код которого равен nn. Слово Perl, например,
представляется последовательностью \x50\x65\х72\х6C;
- \cn - представляет управляющий символ, который генерируется при нажатии комбинации клавиш Ctrl+N, где
N - символ, например, \сD соответствует Ctrl+D;
- \$ - символ "$";
- \@ - символ "@";
- \% - символ "%"',
- \а - представляет символ с десятичным ASCII-кодом 7 (звонок). При выводе производит звуковой сигнал;
- \е - символ Esc, десятичный ASCII-код 27;
- \f - символ перевода страницы, десятичный ASCII-код 12;
- \n - символ новой строки, десятичный ASCII-код 10;
- \r - символ "возврат каретки", десятичный ASCII-код 13;
- \t - символ горизонтальной табуляции, десятичный ASCII-код 9;
- \v - символ вертикальной табуляции, десятичный ASCII-код 11;
- \s - представляет класс пробельных символов. К пробельным символам относятся: пробел, символ
табуляции, возврат каретки, символ новой строки и символ перевода страницы. То же самое, что и [\t,\r,\n,\f];
- \S - представляет класс непробельных символов, то же самое, что и класс [^ \t, \r, \n, \f];
- \d - класс цифровых символов, то же, что и [0-9];
- \D - класс нецифровых символов, то же, что и [^0-9];
- \w - представляет класс буквенно-цифровых символов, состоящий из букв, цифр и символа подчеркивания "_".
То же самое, что и [a-zA-Z_0-9]. Обратите внимание, что в этот класс входят только буквы английского алфавита;
- \W - представляет класс небуквенно-цифровых символов. То же, что и [^а-zА-Z_0-9];
- \А - обозначает начало строки;
- \z - обозначает конец строки;
Замечание.
Последовательность \А эквивалентна метасимволу ^ в начале регулярного выражения, а
последовательность \Z - метасимволу $ в конце регулярного выражения, за исключением одного случая.
Назовем строку, содержащую внутри себя символы новой строки (ASCII 10), мультистрокой. Фактически
мультистрока состоит из отдельных строк, разделенных ограничителями - символами новой строки. При выводе
мультистрока отображается в виде нескольких строк. Если к мультистроке применяется операция поиска или замены с
опцией /m, то последовательности \А и \Z обозначают соответственно начало и конец
всей мультистроки, а метасимволам ^ и $ соответствуют еще и границы внутренних строк, образующих мультистроку.
- \b - обозначает границы слова. Под словом понимается последовательность символов из класса \w. Граница слова
определяется как точка между символами из класса \w и символами из класса \W;
- \B - обозначает не-границы слова, т.е. класс символов [^\b];
- \l - обозначает, что следующий символ регулярного выражения преобразуется к нижнему регистру. Например,
запись /lP/ означает, что символ P будет преобразован к нижнему регистру, после чего новый образец
/р/ может быть использован в соответствующей операции поиска или замены;
- \u - обозначает, что следующий символ регулярного выражения преобразуется к верхнему регистру;
- \L...\Е - обозначает, что все символы в регулярном выражении между \L и \Е преобразуются к нижнему регистру;
- \U...\Е - обозначает, что все символы в регулярном выражении между \U и \Е преобразуются к верхнему регистру;
- \Q...\E - обозначает, что все метасимволы в регулярном выражении между \Q и \Е экранируются при помощи символа "\".
Например, запись /\Q^*?+\Е/ эквивалентна записи /\^\*\?\+/;
- \G - обозначает точку, в которой закончился предыдущий поиск m//g.
На следующем шаге мы рассмотрим атомы.
Предыдущий шаг
Содержание
Следующий шаг