Начиная с этой статьи мы с Вами будем учиться составлять регулярные выражения. Я уже писал, что регулярное выражение состоит из трёх частей: метасимволов, квантификаторов и спецсимволов. И в этой статье мы с Вами разберём метасимволы в регулярных выражениях.
Давайте приведу таблицу с метасимволами, используемых в регулярных выражениях:
Метасимвол Что делает
. Соответствует одному любому символу.
^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.
Пока всё, переваривайте эту информацию, практикуйтесь в написании своих регулярных выражениях, а завтра будет статья по квантификаторам в регулярных выражениях, которые расширяют возможности по их написанию.