直前の文字を指定した範囲の回数繰り返し({min,max})
【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1
【min,max】
直前の文字を指定した範囲の回数だけ繰り返し表れる場合にマッチするパターンを定義できます。例えば3回から7回まで繰り返される場合にマッチさせたりすることが出来ます。
範囲の回数の指定方法は次の通りです。
{min,max}
例えば直前の文字が2回から4回の範囲で繰り返し現れる場合にマッチする場合は次のように記述します。
/Go{2,4}gle/
上記の場合、直前の文字(今回は「o」)が指定した範囲の2回から4回の間繰り返し現れた場合にマッチします。その為、今回の場合でマッチするのは「oo」「ooo」「oooo」の場合です。
【引数を省略する】
2番目の引数は省略することが可能です。2番目の引数を省略すると、直前の文字の最小出現回数だけが設定されます。上限はありません。
{min,}
例文
/Go{2,}gle/
マッチするもの:
Gooogle
Goooogle
Gooooogle
Goooooogle
【回数を指定する】
括弧{}の中に数値を1つだけ指定すると指定した回数だけ直前の文字が現れる場合にマッチします。
・書式
{num}
・例文
/Go{3}gle/
マッチするもの:
Gooogle
【メタ文字「*」「+」「?」との関係】
範囲指定を使えばアスタリスク(*)、プラス(+)、クエスチョン(?)のメタ文字を範囲を使って表すことが出来ます。
* {0,} 直前の文字を0回以上繰り返し
+ {1,} 直前の文字を1回以上繰り返し
? {0,1} 直前の文字が0回か1回
サンプル「test5-1.rb」