正则表达式中的`\.`和`i`是什么意思?

4

有人能告诉我以下代码中:with行的\.i是用来做什么的吗?

validates :image_url, allow_blank: true, format: {
    with:    %r{\.(gif|jpg|png)\Z}i,
    message: 'must be a URL for GIF, JPG or PNG file.'
}

6
你真正应该问的问题是,“%r{..}”是什么? - user2864740
2个回答

7
在Ruby中,您可以使用%r{...}字面量创建正则表达式
以下是元字符(、)、[、]、{、}、.、?、+、* 。当它们出现在模式中时,它们具有特定的含义。要匹配它们,必须使用反斜杠进行转义。 i用于不区分大小写匹配。

7

%r{}用于正则表达式。

\.寻找字面上的字符.。你需要使用\进行转义,因为仅使用.意味着完全不同的事情(任何字符都匹配)。

i用于不区分大小写的搜索。

实际上,您的正则表达式是匹配以.gif.jpg.png结尾的任何内容。由于不区分大小写的搜索,这些也可以是类似于.GiF的东西。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接