Ale*_*dre 129 ruby ruby-on-rails
在模型中有一个字段
validates :image_file_name, :format => { :with => %r{\.(gif|jpg|jpeg|png)$}i
Run Code Online (Sandbox Code Playgroud)
对我来说这看起来很奇怪.我知道这是一个正则表达式.但我想:
%r{value}等于/value/?/some regex/或~=.可能吗?Eur*_*eka 249
%r{}相当于/.../符号,但允许你在正则表达式中使用'/'而不必转义它们:
%r{/home/user}
Run Code Online (Sandbox Code Playgroud)
相当于:
/\/home\/user/
Run Code Online (Sandbox Code Playgroud)
这只是一种语法商品,易读性.
编辑:
请注意,您几乎可以使用任何非字母字符对而不是"{}".这些变体同样适用:
%r!/home/user!
%r'/home/user'
%r(/home/user)
Run Code Online (Sandbox Code Playgroud)
\.=>包含一个点
(gif|jpg|jpeg|png)=>然后,这些扩展中的任何一个
$=>结束,之后没有任何内容
i=>不区分大小写
它和写作一样/\.(gif|jpg|jpeg|png)$/i.
有了%r,你可以使用任何分隔符.
你可以使用%r{}或%r[]或%r!!等.
使用其他分隔符的好处是您不需要/在正常的正则表达式文字中使用它.
| 归档时间: |
|
| 查看次数: |
45963 次 |
| 最近记录: |