Javascript RegExp неправильно выполняет скобки. Зачем? [Дубликат]

Сначала сначала проверяйте стандартные библиотеки. Попробуйте:

System.out.println(Arrays.toString(array));

или если ваш массив содержит другие массивы в качестве элементов:

System.out.println(Arrays.deepToString(array));
26
задан Smurfette 25 July 2013 в 16:58
поделиться

4 ответа

Вы создаете регулярное выражение, передавая строку конструктору RegExp.

Вам нужно избежать \, чтобы ваш строковый литерал мог выразить его как данные, прежде чем преобразовать его в обычный выражение.

28
ответ дан Quentin 27 August 2018 в 17:29
поделиться

Внутри кода, в котором вы создаете строку, обратная косая черта сначала является символом escape-кода javascript, что означает, что escape-последовательности, такие как \t, \n, \" и т. д., будут переведены в их javascript-аналог (вкладка, новая строка, цитата и т. д.), и это будет сделано частью строки. Double-backslash представляет собой одиночную обратную косую черту в самой собственно строке, поэтому, если вам нужна обратная косая черта в строке, вы сначала избегаете ее.

Итак, когда вы создаете строку, говоря var someString = '(\\s|^)' re действительно делает создание фактической строки со значением (\s|^).

12
ответ дан Joe Enos 27 August 2018 в 17:29
поделиться

\ используется в Strings для вызова специальных символов. Если вам нужна обратная косая черта в вашей строке (например, для \ in \ s), вам нужно избежать ее с помощью обратного слэша. Итак, \ становится \\.

EDIT: Даже нужно было сделать это здесь, потому что \\ в моем ответе обратился к \.

3
ответ дан schlicht 27 August 2018 в 17:29
поделиться

Regex нуждается в строчном представлении \s, которое в JavaScript может быть получено с использованием литерала "\\s".

Вот живой пример, чтобы проиллюстрировать, почему "\s" недостаточно:

alert("One backslash:          \s\nDouble backslashes: \\s");

Обратите внимание, как дополнительный \ перед \s изменяет выход.

3
ответ дан Wiktor Stribiżew 27 August 2018 в 17:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: