- Home ›
- Ruby正規表現の使い方 ›
- 任意の文字と繰り返し(量指定子) ›
- HERE
直前の文字を1回以上繰り返し(+)
広告
メタ文字の1つであるプラス(+)をパターンの中に記述すると、プラスの直前にある文字が1回以上繰り返された文字列にマッチします。アスタリスク(*)と異なり最低でも1回は直前の文字が必要となります。
例えば次のように使用します。
/Go+gle/
上記の場合、プラス(+)は直前の文字(今回は「o」)に1回以上繰り返したものにマッチします。1回以上というのは「o」が必ず1回は必要になりますので「o」や「oooo」などにマッチするということになります。
マッチするもの:
Gogle Gogle Google Gooogle Goooogle
マッチしないもの:
Ggle Gooopgle
プラス(+)の直前の文字が必ず1回は必要となります。
サンプルプログラム
では簡単なプログラムで確認して見ます。
#! 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です。そして下記のように実行して下さい。
( Written by Tatsuo Ikura )