Regexp.escape没有逃避正斜杠?

时间:2010-02-05 03:51:07

标签: ruby

在IRB中如果我将类似“/ domain / path”的字符串传递给Regexp.escape,它只会返回相同的内容。我认为正斜杠应该用反斜杠转义?我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:25)

另外,你需要转义/个字符的唯一原因是因为它是regexp的分隔符,如果你指定了其他类型的分隔符(或者是你赢得了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 '/'

答案 1 :(得分:0)

Regexp.escape

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

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