Подтвердить что ты не робот

Regexp.escape не сбрасывает косые черты?

В IRB, если я передаю строку, например "/domain/path", в Regexp.escape, она просто возвращает ее то же самое. Я думал, что передние косы должны быть экранированы с обратной косой чертой? Я что-то пропустил?

4b9b3361

Ответ 1

Кроме того, единственной причиной, по которой вам нужно было бы избежать символов /, является то, что это ваш разделитель для регулярного выражения, если вы указываете другой тип разделителей (или создаете экземпляр класса Regexp), у вас не будет этот вопрос:

/^hello\/world$/  # escaping '/' just to say: "this is not the end"
%r"^hello/world$" # no need for escaping '/'
Regexp.new('^hello/world$') # no need for escaping '/'

Ответ 2

Regexp.escape

Regexp.new(Regexp.escape('/domain/path'))
=> /\/domain\/path/

ИЛИ

Regexp.new(Regexp.escape('domain/path'))
=> /domain\/path/