В IRB, если я передаю строку, например "/domain/path", в Regexp.escape, она просто возвращает ее то же самое. Я думал, что передние косы должны быть экранированы с обратной косой чертой? Я что-то пропустил?
Regexp.escape не сбрасывает косые черты?
Ответ 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.new(Regexp.escape('/domain/path'))
=> /\/domain\/path/
ИЛИ
Regexp.new(Regexp.escape('domain/path'))
=> /domain\/path/