%r{\.(gif|jpg|png)$}i
i
は、行末に何を意味しますか?私は%r
が正規表現を意味することを知っていますが、ここでは "i"は何ですか?正規表現の最後にある "i"は何を意味しますか?
私はGoogleで最初に検索しようとしましたが、この小さなことについての情報を見つけることは本当に難しいです。
%r{\.(gif|jpg|png)$}i
i
は、行末に何を意味しますか?私は%r
が正規表現を意味することを知っていますが、ここでは "i"は何ですか?正規表現の最後にある "i"は何を意味しますか?
私はGoogleで最初に検索しようとしましたが、この小さなことについての情報を見つけることは本当に難しいです。
i
修飾語は、正規表現が一致すると大文字小文字を無視することを意味します。他の正規表現修飾子hereについてもっと詳しく読むことができます。
# with i modifier
%r{.(gif|jpg|png)$}i === ".JpG" #=> true
%r{.(gif|jpg|png)$}i === ".jpg" #=> true
# without i modifier
%r{.(gif|jpg|png)$} === ".JpG" #=> false
%r{.(gif|jpg|png)$} === ".jpg" #=> true
注:.
あなたの正規表現ではなく、「ドット文字」「改行以外の任意の一文字」という意味。あなたはドット文字に一致する必要がある場合は、それをエスケープするバックスラッシュを使用します。\.
%r{.(gif|jpg|png)$} === "ajpg" # => true
%r{\.(gif|jpg|png)$} === "ajpg" # => false
%r{\.(gif|jpg|png)$} === ".jpg" # => true
RubyはRuby用のドキュメントのローカルコピーであるri
が付属しています。
ターミナルウィンドウまたはコンソールを開き、ri Regexp
と入力すると、Regexpのドキュメントが表示されます。それを読んでください:
== Options The end delimiter for a regexp can be followed by one or more single-letter options which control how the pattern can match. * /pat/i - Ignore case * /pat/m - Treat a newline as a character matched by . * /pat/x - Ignore whitespace and comments in the pattern * /pat/o - Perform #{} interpolation only once i, m, and x can also be applied on the subexpression level with the (?on-off) construct, which enables options on, and disables options off for the expression enclosed by the parentheses. /a(?i:b)c/.match('aBc') #=> # /a(?i:b)c/.match('abc') #=> #
私は同じ質問があり、これは最初のGoogleの結果でした。私はdownvotesのため、私はそれをクリーンアップするための編集を提案した唯一の可能性のある理由は、フォーマットです。 –
@MatthewRead:良い呼び出しですが、特に正規表現が関係している場合は、さらに適切な処理を行い、[コードの書式設定](http://stackoverflow.com/editing-help#code)を使用することができます。 –