2.3 KiB
Экранирование специальных символов
В регулярных выражениях есть и другие символы, имеющие особый смысл.
Они используются, чтобы расширить возможности поиска.
Вот их полный список: [ \ ^ $ . | ? * + ( )
.
Не пытайтесь запомнить его -- когда мы разберёмся с каждым из них по отдельности, он запомнится сам собой.
Чтобы использовать специальный символ в качестве обычного, он должен быть экранирован.
Или, другими словами, перед символом должен быть обратный слэш '\'
.
Например, нам нужно найти точку '.'
. В регулярном выражении она означает "любой символ, кроме новой строки", поэтому чтобы найти именно сам символ "точка" -- её нужно экранировать: .
.
//+ run
alert( "Глава 5.1".match( /\d\.\d/ ) ); // 5.1
Круглые скобки также являются специальными символами, так что для поиска именно скобки нужно использовать \(
. Пример ниже ищет строку "g()"
:
//+ run
alert( "function g()".match( /g\(\)/ ) ); // "g()"
Слэш '/'
, хотя и не является специальными символом, но открывает-закрывает регэксп в синтаксисе /...pattern.../
. Поэтому его тоже нужно экранировать:
.'/'
Так выглядит поиск слэша '/'
:
//+ run
alert( "/".match( /\// ) ); // '/'
Ну и, наконец, если нам нужно найти сам обратный слэш \
, то его нужно просто задублировать.
Так выглядит поиск обратного слэша "\"
:
//+ run
alert( "1\2".match( /\\/ ) ); // '\'