正则表达式中的“\.”和“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
。
谁能告诉我以下 :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
。