print(<<"HERE")
:
文字列
:
HERE
ダブルクォート「"」は、シングルクォート「'」でもいいです。
HEREは他の文字列でもいいです。
変数を展開するときは、#{var}とします。
var = <<"HERE"
:
HERE
var = <<`HERE`
ls
:
HERE
#!/bin/env ruby
name = "ppp";
puts("#{name});
文法:
#{演算内容}
上記の場合は文字列の展開
#{20-10}と書くと、20-10が計算されて10となります。
puts("%s",name);でも結果は同じ。
name = "ppp " * 3; # => ppp ppp ppp
name = name + "aaa";
or
name = name << "aaa";
結果は同じに見えるが、2つは挙動が違います。
Ruby1.8では、1文字だけ取り出すとキャラクターコードになり、2文字以上取り出すと文字列になります。
常に文字列だけ取り出すには、
str[0..0] ### 先頭の文字
str[0..2] ### 先頭から3つ
のように書く。
str[0...2]
は、先頭から2文字となります。
左から
str.index("pattern")
右から
str.rindex("pattern")
最初にヒットしたpatternのindexが返ります。なければnil。
含まれているかどうか
str.include?("key")
見つかればtrue、なければfalse。
正規表現も使えます。
idx = str.index(/\w+/)
このとき括弧付きだと文字列を取り出せます。
idx = str.index(/(\w+))
puts $1
どうようの処理は以下のコードでもできます。
str =~ /(\w+)/
puts $1
str.delete("pattern")
このときは正規表現使えません…。
str.gsub(/pattern/, replace chars)
tmp = str.chomp ### 改行コードを削除した文字列を返す
str.chomp! ### str自体を書き換える
tmp = str.strip ### 削除した結果の文字列を返す
str.strip! ### str自体を書き換える
tmp = str.lstrip ### 先頭だけ
str.lstrip! ### str自体を書き換える
tmp = str.rstrip ### 末尾だけ
str.rstrip! ### str自体を書き換える
tmp = str.split("key")
配列が返ります。keyは正規表現も可能。
tmp = str.split(/\s+/) ### 1つ以上の空白で分割