- 公開日
Rubyの %(パーセント) を使った記法まとめ

Rubyで使われる%(パーセント)を使った記法を、よく忘れるのでメモがてらまとめてみます。
まとめ
| %記法 | %を使わない場合の書き方 |
|---|---|
%, %Q | "" (ダブルクオート) |
%q | '' (シングルクオート) |
%w | [] (文字列配列) |
%W | [] (文字列配列・式展開あり) |
%i | [] (シンボル配列) |
%I | [] (シンボル配列・式展開あり) |
%x | `` (コマンド実行) |
%s | : (シンボル) |
%r | // (正規表現) |
%の後には角括弧(`[]`)丸括弧(`()`)や波括弧(`{}`)などの記号が使えます
文字列表現系
%, %Q
%, %Q は、記法内で式展開することが可能な文字列を表現します。
% で書いても %Q で書いても同じ意味になります。
%(a b c)
# => "a b c"
a, b, c = 1, 2, 3
%(#{a} #{b} #{c})
# => "1 2 3" # 式展開される
%Q(#{a} #{b} #{c})
# => "1 2 3"
%q
%q は、式展開ができない文字列を表現します。
%q(a b c)
# => "a b c"
a, b, c = 1, 2, 3
%q(#{a} #{b} #{c})
# => "\#{a} \#{b} \#{c}" # 式展開されていない
配列表現系
%w
%w では、記法内でスペースで区切ったそれぞれの文字列を含む配列となります。
%w(a b c)
# => ["a", "b", "c"]
%W
大文字の%Wは、記法内で式展開が可能となります。
a, b, c = 1, 2, 3
%W(#{a} #{b} #{c})
# => ["1", "2", "3"]
%i
%iは、シンボルの配列となります。
%i(a b c)
# => [:a, :b, :c]
%I
%Iは、式展開可能なシンボル配列です。
a, b, c = 1, 2, 3
%I(#{a} #{b} #{c})
#=> [:"1", :"2", :"3"]
コマンド実行
%x
%x では、シェルコマンドを実行できます。
バッククオートと括った表現と同じ意味になります。
%x(date)
# => "Mon Mar 21 18:25:04 JST 2022\n"
`date`
# => "Mon Mar 21 18:25:27 JST 2022\n"
シンボル
%s
%sは、記法内の文字列を一つのシンボルとして解釈させることができます。
%s(a b c)
# => :"a b c"
正規表現
%r
%r は、正規表現を表します。
URLの正規表現を作るときなど、%r記法を使ったほうがラクで良いです。
%r(^http://)
# => /^http:\/\//