直前の文字が1回以上連続する文字列にマッチする(+)

メタ文字の1つであるプラス(+)をパターンの中に記述すると、プラスの直前にある文字が 1 回以上繰り返された文字列にマッチします。アスタリスク(*)と異なり最低でも 1 回は直前の文字が必要となります。ここでは Ruby の正規表現で直前の文字を 1 回以上繰り返す文字列にマッチするメタ文字「+」の使い方について解説します。

(Last modified: )

直前の文字を1回以上繰り返し

メタ文字 + は直前の文字を1回以上繰り返す文字列にマッチします。例えば次のように使用します。

/Go+gle/

上記の場合、プラス(+)は直前の文字(今回は「o」)に 1 回以上繰り返したものにマッチします。 1 回以上というのは「o」が必ず 1 回は必要になりますので「o」や「oooo」などにマッチするということになります。

マッチするもの:

Gogle
Gogle
Google
Gooogle
Goooogle

マッチしないもの:

Ggle
Gooopgle

プラス(+)の直前の文字が必ず 1 回は必要となります。

サンプルコード

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

# encoding: UTF-8

def check(str)
  if /Go+gle/ =~ str then
    puts("○" + str)
  else
    puts("×" + str)
  end
end

puts("「Go+gle」にマッチするかどうか")

check("Ggle")
check("Gogle")
check("Google")
check("Goooooogle")
check("Gmgle")
check("Gomogle")

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

直前の文字を1回以上繰り返し(+)

-- --

Ruby の正規表現で直前の文字を 1 回以上繰り返す文字列にマッチするメタ文字「+」の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。