- Home ›
- Perlにおける正規表現 ›
- 任意の文字と繰り返し(量指定子) ›
- HERE
直前の文字を1回以上繰り返し(+)
広告
メタ文字の1つであるプラス(+)をパターンの中に記述すると、プラスの前にある文字を1回以上繰り返したものにマッチします。
例えば次のように記述します。
/Go+gle/
上記の場合、プラス(+)は直前の文字(今回は「o」)に1回以上繰り返したものにマッチします。1回以上というのは「o」が必ず1回は必要になりますので「o」や「oooo」などにマッチするということになります。
マッチするもの:
Gogle Google Gooogle Goooogle Gooooogle
メタ文字のアスタリスク(*)が0回以上だったのに対してプラス(+)は必ず1回は必要な場合に使用して下さい。
サンプルプログラム
では簡単なプログラムで確認して見ます。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; print "「Go+gle」にマッチするかどうか¥n¥n"; &check("Ggle"); &check("Gogle"); &check("Google"); &check("Gooooogle"); &check("Gmgle"); &check("Gomgle"); sub check{ my ($str) = @_; if ($str =~ /Go+gle/){ print "○:$str¥n"; }else{ print "×:$str¥n"; } }
上記を「test3-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
( Written by Tatsuo Ikura )