はじめてのRuby!matchメソッドで正規表現によるマッチング

Rubyには文字列を検索するさまざまな方法が用意されていますが、

Rubyで開発を行う際に、

「正規表現で一致した文字列を取得したい」
「一致した文字列の前後の文字列を取得したい」

のような問題に直面することがあります。

そんなときはmatchメソッドを使用すると便利です。

ここではmatchメソッドについて、

【基礎】matchメソッドとは
【基礎】一致した文字列を取得する方法
【基礎】部分一致した文字列を取得する方法
【基礎】数値のみ取得する方法
【発展】一致した前後の文字列を取得する方法

などについてわかりやすく解説していきます。

matchメソッドは文字列を正規表現で検索するときに非常に便利ですので、この機会に覚えておきましょう!

matchメソッドとは

matchメソッドは引数に正規表現を指定して、マッチした文字列を取得したいときに使用します。

matchオブジェクトは以下のように記述します。

正規表現は「//」でくくった中に記述します。

正規表現とは特殊文字を用いて文字列を表現するための手段で、プログラミングにおいて文字列を検索するときによく使われます。

たとえば、「samurai engineer」の文字列から「engineer」の部分のみ取得したい場合は正規表現として「/.*engineer/」と表現することで取得することができます。

matchメソッドは正規表現のパターンにマッチした場合は配列を返し、一致しなかった場合はnillを返します。

matchメソッドの基本

一致した文字列を取得する

ここではmatchメソッドの基本的な使い方を見ていきましょう。

文字列の中から、一致した文字列を取得するには以下のように記述します。

サンプルプログラム:

実行結果:

このサンプルでは「//」で文字列「orange」が存在するかmatchメソッドで確認を行い、一致した場合はその文字列を取得しています。

オブジェクトstrには文字列「orange」が存在するため、mdには一致した文字列が格納されます。

部分一致した文字列を取得する

部分的に文字列を検索したい場合は「*」を使用します。

「*」は検索文字列の前または後ろに「*検索文字列」のようにつけることで、検索文字列を含む文字列を取得することができます。

サンプルプログラム:

実行結果:

このように「*Ruby!!」と指定することで検索文字列を含む前の文字列も取得することができました!

文字列から数字のみを取得する

文字列から数字のみを取得したい場合は、「/\d+/」のように指定します。

/\d+/という正規表現は、数字が1個以上並んでいる場合の文字列にマッチします。

サンプルプログラム:

実行結果:

このように数字のみを取得することができましたね!

一致した文字列の前後の値を取り出す

pre_matchでマッチした前の部分を取り出す

pre_matchメソッドを使用すると、マッチした文字列のより前の文字列を取得することができます。

サンプルプログラム:

実行結果:

マッチした文字列、「および」より前の部分が取り出されました!

post_matchマッチした後ろの部分を取り出す

post_matchメソッドを使用すると、マッチした文字列のより後ろの文字列を取得することができます。

サンプルプログラム:

実行結果:

マッチした文字列、「および」より後ろの部分が取り出されました!

まとめ

ここでは、文字列を検索するmatchメソッドについて、

  • matchメソッドとは
  • 一致した文字列を取得する方法
  • 部分一致した文字列を取得する方法
  • 数値のみ取得する方法
  • 一致した前後の文字列を取得する方法

などについて解説しました。

matchメソッドを使用すれば正規表現を使用して文字列を簡単に取得することができますので、使い方はしっかりと理解しておきましょう。

もしmatchメソッドの使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

侍ブログ編集部

侍ブログ編集部

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
サービスページはこちら
ツイッターはこちら
フェイスブックはこちら

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説