【完全網羅】Ruby 文字列の抽出メソッドまとめ(match, slice,[])

どうも!
インストラクターのババです!

文字列の抽出は文字列操作の中でもよく使用する処理です!
しかし、メソッドがいろいろありすぎて、使い分けがわからないという方が多々いらっしゃると思います。
そんな疑問に応えるために、文字列から文字を抽出するメソッドの使い分けについて解説していきます!
これを読めば、抽出メソッドについてさらに詳しくなることができるでしょう!
それでは行ってみましょう!

目次

抽出するメソッド

shutterstock_156897374

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の文字列を 完全理解の一部となります。
文字列をさらに理解したい方はこちらを読んでどんどん理解を深めていくようにしましょう。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次