Скобки в регулярных выражениях

Скобки в регулярных выражениях

От автора: приветствую вас, друзья. В этой статье мы с вами поговорим о скобках в регулярных выражениях. Регулярные выражения предлагают нам три вида скобок: обычные скобки — (), квадратные скобки — [] и фигурные скобки — {}. Приступим?

Итак, начнем с того, что каждый из перечисленных выше типов скобок является в регулярных выражениях метасимволом. Соответственно, если вы хотите найти любую из этих скобок в строке, вам необходимо экранировать ее в шаблоне регулярного выражения, чтобы скобка совпадала сама с собой и не выступала в качестве метасимвола.

Теперь давайте пройдемся вкратце по каждому из типов. Начнем с первого, обычные круглые скобки. Этот тип скобок выполняет сразу несколько функций, а именно: группировка и запоминание найденного. Посмотрим, зачем необходима группировка.

Возьмем простой пример, необходимо найти слово gray. В принципе, все просто, можно просто написать это слово целиком в качестве шаблона. Однако не все так просто, ведь слово gray часто пишут несколько иначе — grey (через букву e вместо a). Это также допустимый вариант. Соответственно, в регулярке необходимо указать альтернативу — a|e. Попробуем:

Упс… Немного не то. Все дело в том, что символ альтернативы — | — берет в качестве вариантов все, что находится слева и справа от него. Как же нам указать, что в качестве альтернативы нужно взять только по одной букве справа и слева? Вот здесь и пригодятся круглые скобки, которые произведут необходимую группировку.

А вот теперь все хорошо. Кроме того данный вид скобок позволяет запоминать найденное. Поскольку таких групп может быть несколько, они нумеруются. Соответственно, в данном случае запомненная часть будет доступна в переменной под номером один — $1:

Ну что же, с круглыми скобками все понятно. Перейдем к квадратным. Этот вид скобок позволяет указать символьный класс, т.е. набор символов, которые могут идти в заданной позиции строки. Например, мы хотим валидировать логин и хотим, чтобы логин начинался с буквы или цифры, другие символы в качестве первой буквы нам не подойдут. Справиться с этой задачей помогут квадратные скобки:

Ну и, наконец, рассмотрим последний вид скобок, фигурные — {}. Они предназначены для указания количества символа(ов), который стоит перед скобками. При этом мы можем указать минимальное и максимально количество принимаемых символов. Также можем указать точное количество. Например, мы принимаем логины, длина которых находится в диапазоне от 6 до 10 символов. Возьмем предыдущий пример и немного дополним его, указав количество символов после первого — {5,9}:

Как видим, последний вариант не прошел проверку, поскольку содержит более 10 символов. Все просто и красиво.

Ну а на этом у меня сегодня все. Больше о регулярных выражениях вы можете узнать из нашего курса по регулярным выражениям. Удачи!

Метки:

Похожие статьи:

Комментарии Вконтакте: