正規表現オブジェクトの記述方法

正規表現も Ruby ではオブジェクトの一つとして扱われます。ここでは Ruby における正規表現オブジェクトの記述方法について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 10 日更新)

正規表現オブジェクト

正規表現オブジェクトはどのような文字とマッチするのかを表すパターンを正規表現で定められた規則に沿って記述し、スラッシュで囲んで表します。

/パターン/

パターンは文字列の他に特別な意味を持つメタ文字を組み合わせて作成します。

例として特定の1文字にマッチするパターンを作成してみます。

/m/

このパターンを使った場合は、対象の文字列に「m」が含まれていればマッチします。文字列の中のどの位置に含まれていても構いません。またパターンでは大文字と小文字は区別されますので「M」が含まれていてもマッチしません。例えば次のような文字列がマッチします。

morning
lemon
amazon

上記の文字列には「m」が含まれていますので、これらの文字列は先ほど作成した正規表現オブジェクトにマッチします。

次に複数の文字をパターン内に記述した場合です。

/abc/

このパターンを使った場合は、対象の文字列に「abc」が含まれていればマッチします。例えば次のような文字列がマッチします。

abc
xxxabczzz
123abc

正規表現「/abc/」は「a」「b」「c」と言う3つの文字が連続している必要があります。文字と文字の間に他の文字が含まれていてはいけません。その為、「aboc」のように「b」と「c」の間に別の文字が含まれている場合はマッチしません。

今回は文字又は文字列をパターンとして指定した単純なものでしたが、文字列に特別な意味を持つメタ文字と呼ばれるものなどと組み合わせて正規表現オブジェクトを作成します。

サンプルコード

では簡単なプログラムで確認してみます。

# encoding: UTF-8

def check(str)
  print(str + " は /abc/ に")

  if /abc/ =~ str then
    puts("マッチします")
  else
    puts("マッチしません")
  end
end

check("abc")
check("Ababcde")
check("PAbcD")
check("aoabbca")

下記のように実行して下さい。

正規表現オブジェクト

-- --

Ruby における正規表現オブジェクトの記述方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。