空的正则表达式在红宝石中匹配什么?

时间:2010-08-26 00:10:55

标签: ruby regex

根据RoR安全教程(here),我写了一些

的内容
@@private_re = //
def secure?
  action_name =~ @@private_re
end

这个想法是,在基本情况下,这不应该匹配任何东西,并返回nil。问题是它没有。我一直在使用一个荒谬的字符串,但我想知道答案。

2 个答案:

答案 0 :(得分:5)

空正则表达式成功匹配每个字符串。

始终无法匹配的正则表达式示例:

  • /(?=a)b/
  • /\Zx\A/
  • /[^\s\S]/

答案 1 :(得分:1)

这意味着不会以任何方式更改控制器的行为,因为//将匹配每个字符串。

这个想法是@@private意味着要在控制器中设置,以匹配你想要私有的东西。因此,该代码无意义,但与之结合使用时 控制器中的@@private = /.../为您提供了一个很好的隐私机制。