На этом шаге мы обобщим изученное на предыдущих шагах.
Изложенное на предыдущих шагах можно суммировать в виде набора правил, которыми следует руководствоваться при работе с регулярными выражениями.
В заключение раздела приведем в таблицах 1 и 2 сводку метасимволов и метапоследовательностей, рассмотренных на предыдущих шагах.
| Метасимвол | Интерпретация |
|---|---|
| \ | Отменяет (экранирует) специальное значение следующего за ним метасимвола |
| . | Любой одиночный символ, кроме символа новой строки |
| . | Любой одиночный символ, включая символ новой строки, если в операции сопоставления с образцом задан флаг s |
| ^ | Обозначает начало строки, если является первым символом образца |
| $ | Обозначает конец строки, если является последним символом образца |
| | | Разделяет альтернативные варианты |
| [...] | Любой одиночный символ из тех, которые перечислены в квадратных скобках. Пара символов, разделенных знаком минус, задает диапазон символов. Например, [A-Za-z] задает все прописные и строчные буквы английского алфавита. Если первым символом в скобках является символ "^", то вся конструкция обозначает любой символ, не перечисленный в скобках. Внутри скобок символы ".", "*", "[" и "\" теряют свое специальное значение |
| (...) | Группирование элементов образца в один элемент |
| * | Нуль и более повторений регулярного выражения, стоящего непосредственно перед * |
| + | Одно или более повторений регулярного выражения, стоящего непосредственно перед + |
| ? | Одно или ни одного повторения регулярного выражения, стоящего непосредственно перед ? |
| Минимальное n и максимальное m число повторений регулярного выражения, стоящего перед {n,m}. Конструкция {n} означает ровно n повторений, {n, } - минимум n повторений |
| Метапоследрвательность | Значение |
|---|---|
| \0nn | Символ, восьмеричный код которого равен nn> |
| \a | При выводе производит звуковой сигнал |
| \A | Обозначает начало строки |
| \b | Обозначает границы слова. Под словом понимается последовательность символов из класса \w (см. ниже). Граница слова определяется как точка между символами из класса \w и символами из класса \w (см. ниже) |
| \B | Обозначает не-границы слова |
| \cn | Управляющий символ, который генерируется при нажатии комбинации клавиш Ctrl+N |
| \d | Любой цифровой символ, то же, что и [0-9] |
| \D | Любой нецифровой символ, то же, что и [^0-9] |
| \e | Символ Esc, ASCII 27 |
| \E | Ограничитель последовательностей \L, \U, \Q |
| \f | Символ перевода страницы, ASCII 12 |
| \G | Обозначает точку, в которой закончился предыдущий поиск m//g |
| \l | Преобразует следующий символ регулярного выражения к нижнему регистру |
| \L | Преобразует все последующие символы в регулярном выражении к нижнему регистру до тех пор, пока не встретится последовательность \Е |
| \n | Символ новой строки, ASCII 10 |
| \Q | Эквивалентно экранированию всех последующих метасимволов в регулярном выражении при помощи символа "\" до тех пор, пока не встретится последовательность \Е |
| \r | Символ "возврат каретки", ASCII 13 |
| \s | Класс пробельных символов: пробел (space), символ табуляции (tab), возврат каретки (carriage return), символ перевода строки (line feed) и символ перевода страницы (form feed); эквивалентно [\t,\r,\n,\f] |
| \S | Класс непробельных символов |
| \t | Символ табуляции, ASCII 9 |
| \u | Преобразует следующий символ к верхнему регистру |
| \U | Преобразует все последующие символы в регулярном выражении к верхнему регистру до тех пор, пока не встретится последовательность \Е |
| \v | Символ вертикальной табуляции, ASCII 11 |
| \w | Любая буква, цифра или символ подчеркивания |
| \W | Любой символ, не являющийся буквой, цифрой или символом подчеркивания |
| \xnn | Символ, шестнадцатеричный код которого равен nn |
| \Z | Обозначает конец строки |
Со следующего шага мы будем рассматривать операции над регулярными выражениями.