Метасимволы в регулярных выражений
Начиная с этой статьи мы с Вами будем учиться составлять регулярные выражения. Я уже писал, что регулярное выражение состоит из трёх частей: метасимволов, квантификаторов и спецсимволов. И в этой статье мы с Вами разберём метасимволы в регулярных выражениях.
Давайте приведу таблицу с метасимволами, используемых в регулярных выражениях:
Метасимвол | Что делает |
. | Соответствует одному любому символу. |
^sym | Соответствует строке, которая начинается с последовательности sym. |
sym$ | Соответствует строке, которая заканчивается с последовательности sym. |
a1|a2|a3 | Этот метасимвол соответствует любой последовательности символов, разделяемых им. В данном случае, соответствие будет, если строка будет содержать a1, либо a2, либо a3. |
[a-zA-Z] | Соответствует любому символу (либо символу из заданного диапазона, как в примере). Все символы должны идти без знаков разделения (например, abcdef). Обратите внимание, что данный метасимвол соответствует одному символу! |
[^a-zA-Z] | Противоположность предыдущему метасимолу. То есть соответствие будет тогда, когда проверяемый символ не будет перечислен в указанной последовательности символов (либо диапазоне). |
(.[a-z]) | Круглые скобки служат для выделения определённых частей регулярного выражения. Они называются "карманами" или "субпаттернами", о которых я бегло упомянул в прошлой статье. Важнейший метасимвол, значение которого Вы поймёте позже. |
Теперь давайте закрепим материал по данным метасимволам:
/^abc([0-9])[^a]./
Обратите внимание, что в начале и конце регулярного выражения должен находиться один и тот же символ. Это может быть любой символ (за исключением некоторых). Но по традиции используют символ "/", иногда "#". То есть в начале и конце регуярного выражения должен стоять этот выбранный символ (повторяю, что это может быть практически любой символ, который только означает начало и конец регулярного выражения).
Переведу регулярное выражение в примере на русский язык. Строка, которая "начинается с abc, далее идёт любая цифра, далее идёт любой символ, кроме "a", а затем вообще любой символ", будет соответствовать регулярному выражению, написанному выше. Более того, цифру мы выделили в круглые скобки, соответственно она попадёт в "карман".
Пример строки, которая будет соответствовать данному регулярному выражению: "abc59x" (строка "abc59x_и_далее_неважно_что" также будет соответствовать). А в субпаттерн ("карман") попадёт цифра 5.
Пока всё, переваривайте эту информацию, практикуйтесь в написании своих регулярных выражениях, а завтра будет статья по квантификаторам в регулярных выражениях, которые расширяют возможности по их написанию.
-
- Михаил Русаков
Комментарии (4):
Михаил, у вас ошибка в таблице, в предложении ("Соответствует любому символу (либо символу из заданного диапазона, как в приимере). ") У вас слово "приимере" написано с 2 буквами "и"
Ответить
Спасибо, исправил.
Ответить
/^abc([0-9])[^a]./ для чего здесь () - скобки нужны ? ведь и без них все работает. Я суть их не понял для чего они служат ?
Ответить
Читайте внимательно. Скобки-это карман. Без них конструкция [0-9] воспринимается для проверки одного символа, т.е, чтобы строго на этом месте была цифра 0-9, и после-уже след. конструкция. А с карманом ([0-9]) допускается после цифры любая последовательность символов
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.