回答:
%r{}
これは/.../
表記と同等ですが、エスケープすることなく正規表現に「/」を含めることができます。
%r{/home/user}
以下と同等です。
/\/home\/user/
これは、読みやすくするために、構文の商品にすぎません。
編集:
'{}'の代わりに、ほとんどすべての非アルファベット文字のペアを使用できることに注意してください。これらのバリアントも同様に機能します。
%r!/home/user!
%r'/home/user'
%r(/home/user)
編集2:
%r{}x
バリアントは空白を無視し、複雑な正規表現を読みやすくすることに注意してください。GitHubのRubyスタイルガイドの例:
regexp = %r{
start # some text
\s # white space char
(group) # first group
(?:alt1|alt2) # some alternation
end
}x
%r{}x
ですか?/.../x
空白も無視します。これは%r
構文の特別なプロパティではありません。従う/../
ことができるすべてのオプションも従うことができます%r{}
。
\.
=>ドットを含む
(gif|jpg|jpeg|png)
=>次に、これらの拡張機能のいずれか
$
=>終わり、それ以降は何も
i
=>大文字と小文字を区別しない
そしてそれは書くことと同じ/\.(gif|jpg|jpeg|png)$/i
です。
%w[1 2 3]
として同じ[1, 2, 3]
です。
%w[1 2 3]
と同じではありません[1, 2, 3]
。と同じ['1', '2', '3']
です。