我正在阅读rails6的敏捷网络开发。在第7章“任务B:验证和联合测试
class Product < ApplicationRecord validates :image_url, allow_blank: true, format: { with: %r{\.(gif|jpg|png)\z}i, }
i到底是什么意思?它应该表示它以.git或.jpg或.png结尾
i
yfwxisqw1#
查询中的i告诉正则表达式使用不区分大小写的匹配,这里没有什么是rails独有的,所以你可能想了解一下正则表达式,了解所有可以用来修改表达式的不同术语。表达式%r{\.(gif|jpg|png)\z}i等效于/\.(gif|jpg|png)\z/i\.表示|是一个句点字符,或者如您所述,\z是字符串的结尾,您可以在此处阅读更多警告:http://www.regular-expressions.info/anchors.html和i是激励案例匹配这意味着您将匹配“test.jpg”、“test.JPG”、“test.JPG”或这三个字符的任何排列,在任何情况下,前面都有一个句点,该句点出现在字符串的末尾。以下是针对ruby特定的regex的文档:https://ruby-doc.org/2.7.7/Regexp.html这里有一些东西,你可以玩和学习正则表达式一般和尝试一些表达式自己:https://regexr.com
%r{\.(gif|jpg|png)\z}i
/\.(gif|jpg|png)\z/i
\.
|
\z
06odsfpq2#
简要说明:正则表达式末尾的“i”是一个修饰符,它使表达式不区分大小写。这意味着它将匹配图像URL中的大小写字母。
2条答案
按热度按时间yfwxisqw1#
查询中的
i
告诉正则表达式使用不区分大小写的匹配,这里没有什么是rails独有的,所以你可能想了解一下正则表达式,了解所有可以用来修改表达式的不同术语。表达式
%r{\.(gif|jpg|png)\z}i
等效于/\.(gif|jpg|png)\z/i
\.
表示|
是一个句点字符,或者如您所述,\z
是字符串的结尾,您可以在此处阅读更多警告:http://www.regular-expressions.info/anchors.html和i
是激励案例匹配这意味着您将匹配“test.jpg”、“test.JPG”、“test.JPG”或这三个字符的任何排列,在任何情况下,前面都有一个句点,该句点出现在字符串的末尾。
以下是针对ruby特定的regex的文档:
https://ruby-doc.org/2.7.7/Regexp.html
这里有一些东西,你可以玩和学习正则表达式一般和尝试一些表达式自己:
https://regexr.com
06odsfpq2#
简要说明:正则表达式末尾的“i”是一个修饰符,它使表达式不区分大小写。这意味着它将匹配图像URL中的大小写字母。