Rubyで指定した範囲の文字列を抽出・削除する:slice, slice!

今回はRubyで指定した範囲の文字列を抽出する方法・削除する方法を解説します。

slice

指定した範囲の文字列を抽出する方法として、sliceメソッドを使うことが挙げられます。

sliceメソッドでは、文字列・配列の中から任意の範囲を抽出することができます。

基本的な書式は以下のようになります。

str.slice(index) 
str.slice(index, length) 
str.slice(range)
str.slice(regex)
str.slice(regex, num)
str.slice(substr)

引数によって使い分けができます。

(index)、(index,length)
第1引数で指定した値の位置にある文字列の抽出ができます。

第2引数を指定すると、開始位置からの長さを決めることができます。

(range)
rangeの書式は(num1..num2)という形になります。

その値の範囲内の文字列を返します。

(regex)、(regex,num)
正規表現で文字列の抽出を行えます。

(substr)
指定した文字列の抽出ができます。

実際に使ってみましょう。

str = "milkman !!"

puts str.slice(2)

puts str.slice(1..4)

puts str.slice(/\w+/)

実行結果は以下のようになります。

l
ilkm
milkman

このように文字の抽出ができます。

slice!

slice!メソッドでは、指定した範囲の文字列を部分的に削除することができます。

また、レシーバ自身の指定した範囲の文字列が削除されます。

基本的な書式はsliceメソッドと変わりません。

実際に使ってみましょう。

str = "milkman !!"
str.slice!(2)
puts str

str = "milkman !!"
str.slice!(1..4)
puts str

str = "milkman !!"
str.slice!(/\w+/)
puts str

実行結果は以下のようになります。

mikman !!
man !!
 !!

このように指定した範囲が削除されます。


イベント

2017/10/06(金)
UX School(全10回)

購読

平日・毎朝更新中