Ruby的“%r{}”表达式的作用是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

在代码中有一个字段:

validates :image_file_name, :format => { :with => %r{\.(gif|jpg|jpeg|png)$}i

很奇怪。我知道这是一个正则表达式。但我想:

  • 知道这到底意味着什么。是%r{value}等于/value/
  • 能否用普通的Ruby regex运算符替换比如/some regex/~=.
提问于
用户回答回答于

%r{}等于/.../符号,但允许在regexp中包含“/”,而不必转义:

%r{/home/user}

相当于:

/\/home\/user/

可以使用几乎任何非字母字符对,而不是‘{}’。这些变体也同样有效:

%r!/home/user!
%r'/home/user'
%r(/home/user)
用户回答回答于

\.=>包含一个点 $=>结束 i=>不区分大小写

扫码关注云+社区