スライドショー

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

LINEで送る
Pocket

ITエンジニアへ転職したい方におすすめ

自分を評価してくれる企業に転職して年収を上げたい! 自分のスキルにあった独自案件を知りたい!
エンジニアは今もっとも注目されている職業の1つ。エンジニアになって年収を増やしたい方や、あなたのスキルに見合った企業へ転職したいエンジニアの方も多いですよね。

しかし、大手の転職媒体は扱う求人数が多くても、誰もが登録しているので競争率もかなり高くなっています。そのため、あなたの条件に見合った企業を見つけても転職するためには、相応の努力とスキルが必要となります。

こういった媒体では、未経験からエンジニアを目指す方やエンジニア歴2〜3年で転職を考えている方にとって、最適な転職環境とはいえません。

そこでオススメしたいのが、未経験者や若手エンジニア向けの独自案件を多く掲載している「侍ワークス」です。

侍ワークスは、独自案件を多く掲載しているだけでなく、

・応募から就業まで一貫したサポート

・就業後もアフターフォロー

といった経験の浅い方や初めてエンジニアを目指す方にも安心のフォロー体制が整っています。もちろん登録は完全無料!しかも案件を見るだけなら登録も不要です。

まずは、お気軽にどんな求人があるか見てみてください。あなたにピッタリの企業がきっと見つかりますよ! 侍ワークスの求人情報を見る

書いた人

ババシュンスケ

ババシュンスケ

こんにちは!
今年大学を飛び出し、フリーランスエンジニアとして働いています、ババです!

エンジニアはしんどい仕事と思われていますが、実はそんなにしんどくなくて、お金ももらえて、社会のためになる素晴らしい仕事というのを伝えるために、侍で業務委託として働いています!!

フリーランスの日常やら書いているブログやってます=>http://www.babashun.net/