gpt4 book ai didi

ruby-on-rails - Ruby %r{ } 表达式

转载 作者:数据小太阳 更新时间:2023-10-29 06:17:26 26 4
gpt4 key购买 nike

模型中有一个字段

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

这对我来说看起来很奇怪。我知道这是一个正则表达式。但我想:

  • 了解它的确切含义。 %r{value} 是否等于 /value/
  • 能够用普通的 Ruby 正则表达式运算符 /some regex/=~ 替换它。这可能吗?

最佳答案

%r{} 等同于 /.../ 表示法,但允许您在正则表达式中包含“/”而无需转义它们:

%r{/home/user}

相当于:

/\/home\/user/

为了易读性,这只是一种语法商品。

编辑:

请注意,您几乎可以使用任何非字母字符对来代替“{}”。这些变体同样有效:

%r!/home/user!
%r'/home/user'
%r(/home/user)

编辑 2:

请注意,%r{}x 变体会忽略空格,从而使复杂的正则表达式更具可读性。来自 GitHub's Ruby style guide 的示例:

regexp = %r{
start # some text
\s # white space char
(group) # first group
(?:alt1|alt2) # some alternation
end
}x

关于ruby-on-rails - Ruby %r{ } 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12384704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com