今回はRubyで指定した範囲の文字列を抽出する方法・削除する方法を解説します。
slice
指定した範囲の文字列を抽出する方法として、sliceメソッドを使うことが挙げられます。
sliceメソッドでは、文字列・配列の中から任意の範囲を抽出することができます。
基本的な書式は以下のようになります。
1 2 3 4 5 6 |
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)
指定した文字列の抽出ができます。
実際に使ってみましょう。
1 2 3 4 5 6 7 |
str = "milkman !!" puts str.slice(2) puts str.slice(1..4) puts str.slice(/\w+/) |
実行結果は以下のようになります。
1 2 3 |
l ilkm milkman |
このように文字の抽出ができます。
slice!
slice!メソッドでは、指定した範囲の文字列を部分的に削除することができます。
また、レシーバ自身の指定した範囲の文字列が削除されます。
基本的な書式はsliceメソッドと変わりません。
実際に使ってみましょう。
1 2 3 4 5 6 7 8 9 10 11 |
str = "milkman !!" str.slice!(2) puts str str = "milkman !!" str.slice!(1..4) puts str str = "milkman !!" str.slice!(/\w+/) puts str |
実行結果は以下のようになります。
1 2 3 |
mikman !! man !! !! |
このように指定した範囲が削除されます。