ActiveSupport::Inflector::Inflections#human在示例中使用\1
:
human /_cnt$/i, '\1_count'
据我所知,这实际上是在字符串中添加了\u0001
字符,如果我只使用'_count'
,它似乎仍然有用。谁能告诉我\1
实际应该做什么?
答案 0 :(得分:6)
可能是在引擎盖下,他们将该字符串传递给gsub
或类似的东西。在gsub
替换字符串中,'\1'
具有特殊含义 - 它指的是匹配的正则表达式参数中的第一个捕获组。
例如,尝试:
"a short sentence".gsub(/([aeiou])/, '\1\1')
如果你使用"\1"
,现在这是完全不同的事情。那是\u001
个字符。 (Escapes在单引号和双引号Ruby字符串中的工作方式不同。)
可能省略\1
似乎没有改变你给出的示例中的任何内容的原因是因为正则表达式中没有捕获组。