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

広告

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

例えば次のように使用します。

/Go+gle/

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

マッチするもの:

Gogle
Gogle
Google
Gooogle
Goooogle

マッチしないもの:

Ggle
Gooopgle

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

サンプルプログラム

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

test3-1.rb

#! ruby -Ku
require "kconv"

def check(str)
  if /Go+gle/ =~ str then
    print(Kconv.tosjis("○") + str + "¥n")
  else
    print(Kconv.tosjis("×") + str + "¥n")
  end
end

print(Kconv.tosjis("「Go+gle」にマッチするかどうか¥n¥n"))

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

上記のプログラムを「test3-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。

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

( Written by Tatsuo Ikura )