Вопрос по javascript, regex – Когда мне нужно экранировать символы в наборе символов регулярных выражений (в пределах [])?

12

Отличаются ли правила для того, что я избегаю в скобках, от того, что я делаю вне скобок?

Например, я должен избежать? внутри кронштейна? Это/blah[^?]/ или же/blah[^\?]/

Отличаются ли правила для скобок от других, или я должен избегать того же самого?

название не соответствует реальному вопросу ajax333221

Ваш Ответ

1   ответ
22

что нужно заключить в скобки, это закрывающая скобка и минус, если он не является начальным или конечным, и шапка, если она начальная, AFAIK. И сам по себе обратный слеш, очевидно.

Причина в том, что это единственные символы, имеющие особое значение в скобках. Закрывающая скобка заканчивает скобки, минус средней строки указывает диапазон, а начальная шляпа отменяет класс скобки. Все остальное должно быть буквально истолковано. Обратная косая черта является escape-символом, поэтому вам нужен двойной обратный слеш, чтобы соответствовать буквальному обратному слешу.

Error: User Rate Limit Exceeded qwertymk
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded[\d]Error: User Rate Limit Exceeded\dError: User Rate Limit Exceeded[0-9]).
Error: User Rate Limit Exceeded qwertymk
Error: User Rate Limit Exceeded[^a]Error: User Rate Limit Exceededa. [a^]Error: User Rate Limit ExceededaError: User Rate Limit Exceeded^. [\^a]Error: User Rate Limit ExceededaError: User Rate Limit Exceeded^Error: User Rate Limit Exceeded[\\^a]Error: User Rate Limit Exceeded`, Error: User Rate Limit Exceeded^.

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