Что означает косая черта в регулярном выражении JavaScript?
Я не могу найти окончательной информации о том, что означает /
в JavaScript-выражении.
Код replace(/\r/g, '');
Что я могу выяснить, так это:
-
/
= Я не знаю
-
\r
= возврат каретки
-
/g
= Я не знаю, но это может означать, что матч должен происходить в том месте, где закончился предыдущий матч.
Ответы
Ответ 1
Слэши указывают начало и конец регулярного выражения.
g
в конце - это флаг и указывает, что это глобальный поиск.
Из docs:
Регулярные выражения имеют четыре необязательных флага, которые допускают глобальные и нечувствительный к регистру поиск. Чтобы указать глобальный поиск, используйте g флаг. Чтобы указать поиск без учета регистра, используйте флаг i. к укажите многострочный поиск, используйте флаг m. Чтобы выполнить "липкую" поиск, совпадающий с текущей позицией в целевом string, используйте флаг y. Эти флаги могут использоваться отдельно или вместе в любом порядке и включены как часть регулярного выражения.
Чтобы включить флаг с регулярным выражением, используйте этот синтаксис:
var re = /pattern/flags;
Ответ 2
Как указывали другие, вы должны прочитать документы! Тем не менее:
Подумайте о косой черте как кавычки для регулярных выражений. Косые черты содержат выражение, но сами не являются частью выражения. (Если вы хотите протестировать косую черту, вам нужно сбежать с обратной косой чертой). В нижнем регистре g указано, что это глобальный поиск, т.е. Найти все совпадения, а не останавливаться в первом совпадении.
Ответ 3
Как указано здесь, прямые косые черты не являются частью самого выражения, а обозначают начало и конец выражения.
Ответ 4
Чтобы добавить немного больше деталей, символы /
являются частью синтаксиса регулярного выражения literal в JavaScript/ECMAScript. Символы /
используются во время лексического анализа, чтобы определить, что шаблон регулярного выражения присутствует между ними, и все, что сразу после них будет представлять собой флаги регулярного выражения, стандарт ECMAScript определил это в EBNF, для вашего perusual
RegularExpressionLiteral::/RegularExpressionBody/ ФлагиРегулярногоВыражения
Хорошей аналогией для /
в регулярных выражениях является "
или '
, которые окружают строковые литералы в JavaScript.
Ответ 5
Чтобы добавить к запросу metadept:
бит g - это глобальный индикатор - см. Что означает регулярное выражение /_/g? - т.е. заменить все вхождения, а не только первый