Rubyリファレンス: Home

slice! (String)

Edit   History

標準クラス・モジュール > String > slice!

slice!メソッドは、文字列中の部分文字列を削除します。レシーバ自身を変更するメソッドです。引数の指定のしかたは[]メソッドと同じです。

メソッドの戻り値は、削除した文字列です。部分文字列が見つからない場合は、レシーバを変更せず、戻り値はnilになります。

Ruby 1.9 []メソッドと同様に、位置や長さはRuby 1.8ではバイト単位、Ruby 1.9では文字単位になります。

位置

str.slice!(idx)

引数に整数を1つ指定すると、その位置の文字を削除します。戻り値は、Ruby 1.8ではその位置のバイトの整数、Ruby 1.9では削除した1文字になります。

s = "hello"
s.slice!(1)
puts s
hllo

位置と数

str.slice!(idx, len)

整数を2つ指定すると、idxの位置からlen文字分の部分文字列を削除します。

s = "hello"
s.slice!(1, 3)
puts s
ho

範囲

str.slice!(range)

範囲を指定すると、その範囲に対応する部分文字列を削除します。

s = "hello, world"
s.slice!(7..10)
puts s
hello, d

正規表現

str.slice!(regexp)
str.slice!(regexp, num)

正規表現を指定すると、そのパターンにマッチした部分文字列を1つだけ削除します。

第2引数に整数を指定すると、0のときはマッチした部分、1のときはパターン中の最初の( )の部分、2のときは2つ目の( )の部分、...を削除します。

s = "hello, world"
s.slice!(/\w+/)
puts s
, world

文字列

str.slice!(other_str)

文字列を指定すると、その部分文字列を1つだけ削除します。

s = "hello, world"
s.slice!("world")
puts s
"hello, "

関連項目