Изучаем регулярные выражения самостоятельно - Экранирование специальных символов ( часть 5 )

Экранирование специальных символов

В справочнике по регулярным выражениям, есть такой раздел, который называется ' Мета-символы (экранируются) '. Вот именно об этих мета символах (их ещё называют и специальные символы) и будем говорить в этой статье.

Специальные символы — это те символы, которые не являются буквами или цифрами. То есть это все символы, кроме букв и цифр.

Специальными символами считаются такие символы как точка, звёздочка, плюс, знак вопроса, решётка и другие.

Как мы знаем из предыдущих статей, некоторые специальные символы имеют особенную роль в регулярных выражениях. То есть каждый специальный символ, имеет какое-то представление.

Например, точка означает абсолютно любой символ. Звёздочка является квантором повторений от нуля до бесконечности. Плюс также является квантором повторений от одного до бесконечности. Мнимый символ ^ означает начало строки, а знак доллара ( $ ) конец строки. Кстати символ доллара тоже является мнимым символом. Ещё мы знаем, что символ ^ имеет и другую роль, если мы поставим его внутри квадратных скобок. Обо всех этих значениях мы поговорили в предыдущих статьях.

В этой статьи я отвечу на вопрос ' Как использовать специальные символы в регулярном выражении '.

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

Экранирование делается с помощью обратного слеша. То есть для того чтобы экранировать какой-то специальный символ, необходимо поставить перед ним, обратный слеш.

Допустим у нас есть такая задача ' Проверить, поставлена ли точка в конец строки '. Так вот для того чтобы эта точка в регулярном выражении, являлась именно точкой, а не любым другим символом, необходимо её экранировать.

var str = 'Он является героем.';
var reg = /.*\.$/;

alert(reg.test(str));// true

Как мы видим, результатом проверки строки на соответствие регулярного выражения является true. Если мы уберём точку с конца строки, то результатом будет уже false.

Аналогичным образом, экранируются и другие специальные символы.

var str = 'x+y=.n*m=/,co\\la';
var reg = /x\+y=\.n\*m=\/,co\\\la/;

alert(reg.test(str));// true

Здесь мы произвели экранирование символов плюс (\+), точки (\.), звёздочки (\*), обычного слеша (\/) и обратного слеша (\\\). Обратите внимание что, обратный слеш в строке пишется двумя обратными слешами. И экранируется он в регулярном выражении, также с помощью двух обратных слешей.

Если мы с помощью alert, выведем строку из переменной str, то вместо двух обратных слешей увидим только один.

Аналогичным образом экранируются все те символы, которые указаны в справочнике, в разделе мета-символы.

И на этом, пожалуй, все. Из этой маленькой статьи, Вы уже знаете как экранировать специальные символы и как их использовать в составление регулярных выражений.

Задачи

  1. Допустим, нам нужно проверить на соответствие, такую строку ' Я выиграл 400$ '. Напишите регулярное выражение, которая проверяло бы наличие символа доллара в конце строки. Проверьте строку на соответствие.

Понравилась статья?

Тогда поделитесь ею с друзьями и подпишитесь на новые интересные статьи.

Поделиться с друзьями:

Подписаться на новые статьи:

Delivered by FeedBurner

Поддержите пожалуйста мой проект!

<< Предыдущая статьяСледующая статья >>

Если у Вас есть какие-то вопросы или предложения, то можете писать их в комментариях или мне на почту sergiu920@mail.ru. И если Вы заметили какую-то ошибку в статье, то прошу Вас, сообщите мне об этом, и в ближайшее время я всё исправлю.

Добавляйтесь ко мне в друзья в:

Добавляйтесь в мои группы:

Подпишитесь на мои каналы:

Автор статьи: Мунтян Сергей

Копирование материалов с сайта sozdatisite.ru ЗАПРЕЩЕНО!!!

Дата добавления: 2017-02-01 02:16:20