почему все те, обратный слэш в определении RegExp?
"\\"
- это строка, значение которой составляет \
. Одна обратная косая черта используется как побег, вторая для значения. Затем в пределах регулярного выражения вам также нужно снова свернуть символ обратной косой черты , потому что символы обратной косой черты используются для обозначения особых вещей в регулярном выражении.
Например
"\\1"
является строкой, значение которого \1
, который, в регулярном выражении, соответствует первой захваченное группе.
"\\\\"
является строкой, значение которого \\
, который, в регулярном выражении, соответствует единственному \
характер.
"\\\\\\1"
является строкой, значение которого \\\1
, который, в регулярном выражении, соответствует единственному \
с последующим первой захваченной группой.
Эта необходимость избегать обратных косых черт, а затем сбежать от них снова называется «двойным экранированием». Причина, по которой вам нужно удвоить бегство, заключается в том, что у вас есть правильное значение в регулярном выражении. Первый побег состоит в том, чтобы убедиться, что строка имеет правильное значение, второй побег так, что регулярное выражение соответствует правильному шаблону.
Почему между двумя определениями ключа и val есть запятая?
Код, который вы отправили, является объявлением переменной. Это легче увидеть, когда отформатирован:
var regex = ...,
key = ...,
val = ...;
Каждый из имен переменных в списке объявляются с помощью ключевого слова var
. Это то же самое, объявляя ключевые слова отдельно:
var regex,
key,
val;
regex = ...
key = ...
val = ...
Что такое же, как объявить каждый вар с другой вар ключевого слова:
var regex = ...
var key = ...
var val = ...
использования [regexr.com] (HTTP: // regexr.com/), вставьте ваше регулярное выражение в область ** выражения ** сверху, и вы получите объяснение для каждого символа в регулярном выражении. –
Да, я знаю этот сайт, но я до сих пор не могу понять, как поставить все эти обратные косые черты; для меня бесполезно, если нужно просто взять слова, разделенные запятой. Также regexr.com не объясняет, почему есть такие вещи: '\\ 1'. – W4cc0
Шесть обратных косых черт означают 3 обратные косые черты в regex, а 1 матче - символ «1». –