どうも!
インストラクターのババです!
文字列の抽出は文字列操作の中でもよく使用する処理です!
しかし、メソッドがいろいろありすぎて、使い分けがわからないという方が多々いらっしゃると思います。
そんな疑問に応えるために、文字列から文字を抽出するメソッドの使い分けについて解説していきます!
これを読めば、抽出メソッドについてさらに詳しくなることができるでしょう!
それでは行ってみましょう!
抽出するメソッド
slice
sliceは範囲や文字で文字列を指定して、その部分を抜き取るメソッドです。
p "ruby".slice(0) # => "r" p "ruby".slice(0,3) # => "rub" p "ruby".slice(0..3) # => "rub"
数字で指定した場合は、上のように指定された数字、範囲で文字を抽出することができます!
プログラミング全般に言えることですが、0が一番目ということは注意してください!
sliceの引数には正規表現や文字列を渡すこともできます。
p "ruby".slice(/ru/) # => "ru" p "ruby".slice("by") # => "by"
正規表現や文字列を渡すと、それにマッチした値が抽出されます。
[]
sliceの簡略化したメソッドとしてよく使用されるのが「[]」です。
使い方はsliceの部分を[]に変えてあげるだけです。
p "ruby"[0] # => "r" p "ruby"[0,3] # => "rub" p "ruby"[0..3] # => "rub" p "ruby"[/ru/] # => "ru" p "ruby"["by"] # => "by"
こちらのメソッドの方がより簡単に書くことができるので、オススメしたい記法です!
match
matchは少し使い方の難しいメソッドです。
matchは引数に与えた正規表現にマッチする部分を抽出するのですが、長さが2の配列で返ってきます。
p "ruby".match(/r(\w+)y/) #
配列の[0]にはマッチした文字列自体が、[1]には()で囲われた部分の文字が入ります。
なので、囲まれている文字はわかっていて、その間の文字列を取りたいなんてときは重宝するメソッドになっています!
まとめ
今回はrubyの文字列の抽出について解説していきました。
抽出は、「ある文字が入っていたらtrue」などの条件分岐の部分でよく使用します。
いくつかメソッドがありますが、しっかり使い分けするようにしていきましょう!
Rubyの文字列をしっかり理解したい方に
この記事は文字列を体系的に解説した3ステップで簡単! Rubyの文字列を 完全理解の一部となります。
文字列をさらに理解したい方はこちらを読んでどんどん理解を深めていくようにしましょう。