正则表达式中的“\.”和“i”是什么?

What are `\.` and `i` in a regular expression?

谁能告诉我以下 :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.'
}

在 Ruby 中,您可以使用 %r{...} 文字创建 Regexps

以下是metacharacters (, ), [, ], {, }, ., ?, +, *.它们出现在一个模式中时有特定的含义。要从字面上匹配它们,它们必须用反斜杠转义。

i 用于 case insensitive 匹配。

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

\. 正在寻找文字字符 .。您需要 \ 进行转义,因为仅使用 . 意味着完全不同的东西(任何字符匹配)。

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

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