7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rubyでクオート、ダブルクオート以外でのStringの書き方

Last updated at Posted at 2014-02-05

コードを書いてて良く、ストリング書きたいけど文字列内に大量に 「"」 や 「'」 が入り混じってて、いちいちエスケープしたくないけど、書き方忘れた。名前なんだっけ?って思う時があったので、メモ代わりにかいておく。

良く使うのがヒアドキュメントと%記法なんですが、名前がいつも浮かばない。

パーセント記法

# とりあえず単純にストリングを書きたい
# %の後に特定の文字で囲むと、その間の文字列をStringとして認識してくれるみたい。ダブルクオートの代わり
str1 = %!This is a string.!
str2 = %{"And you can do this too!"}
str3 = %[Also stuff like #{1 + 1}]  # => "Also stuff like 2"

さらにいくつか特殊(?)なケースもあるみたい

# %q でシングルクオートの代わり
str3 = %[Also stuff like #{1 + 1}] # => "Also stuff like \#{1 + 1}"
# %r で正規表現
regex1 = %r!^\/[a-z0-1]+\/$!
regex1 =~ '/hoge234'   # => nil
regex1 =~ '/hogeA/'   # => nil
regex1 =~ '/hoge234/'   # => 0

ヒアドキュメント

ヒアドキュメントも結構使うのでメモっておく

# <<の後に、ヒアドキュメント開始タグを書いて、最後に同じタグで閉じると、その間がStringとして保存される。
str = <<EOS
<html>
<head>
</head>
<body>
</body>
</html>
EOS
# でも、こうするとエラーになる。閉じタグはちゃんと左端にないとダメなのね。
str = <<EOS
<html>
<head>
</head>
<body>
</body>
</html>
  EOS

# しかもmarkdownのシンタックスでもエラーになってるみたいですね。カッコ悪い。
# 「<<」の代わりに、「<<-」にすると動いたりする
str = <<-EOS
<html>
<head>
</head>
<body>
</body>
</html>
  EOS

とりあえず、パっと思いつくのはこれくらい。後は「パーセント記法」とか「ヒアドキュメント」と言う名前が思い出せればググってます。(そこに辿り着くまでが長い)

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?