\ 1(反斜杠1)在Ruby字符串中做什么?

时间:2014-03-24 18:10:16

标签: ruby-on-rails ruby activesupport

ActiveSupport::Inflector::Inflections#human在示例中使用\1

human /_cnt$/i, '\1_count'

据我所知,这实际上是在字符串中添加了\u0001字符,如果我只使用'_count',它似乎仍然有用。谁能告诉我\1实际应该做什么?

1 个答案:

答案 0 :(得分:6)

可能是在引擎盖下,他们将该字符串传递给gsub或类似的东西。在gsub替换字符串中,'\1'具有特殊含义 - 它指的是匹配的正则表达式参数中的第一个捕获组。

例如,尝试:

 "a short sentence".gsub(/([aeiou])/, '\1\1')

如果你使用"\1",现在这是完全不同的事情。那是\u001个字符。 (Escapes在单引号和双引号Ruby字符串中的工作方式不同。)

可能省略\1似乎没有改变你给出的示例中的任何内容的原因是因为正则表达式中没有捕获组。