- Home ›
- Perlにおける正規表現 ›
- 正規表現の基本 ›
- HERE
パターンの記述方法
どのような文字列と一致させたいのかを指定するのがパターンです。正規表現とはこのパターンの記述方法について定義したものとも言えます。パターンの定義は次のように「/」と「/」の間に挟んで指定します。
/パターン/
パターンの中には単純な文字列から様々な特殊な意味を持った記号を記述することが可能です。詳しい解説は別のページで行いますので、ここでは単なる文字列を指定した場合で考えてみます。
例として1文字だけを記述した場合です。
/a/
この場合は対象の文字列に「a」が含まれていればマッチします。文字列の中のどの位置にあるのかは関係ありません。またパターンでは大文字と小文字は区別されますので「A」が含まれていてもマッチしません。
よって次のような文字列の場合にマッチします。
abc This is a pen yahoo
次に複数の文字をを記述した場合です。
/abc/
この場合は対象の文字列に「abc」が含まれていればマッチします。「a」「b」「c」の3つの文字が含まれていればという意味ではなく、「abc」と言う3つの文字が連続して記述されたものが含まれているかどうかで判別されます。
よって次のような文字列の場合にマッチします。
abc toabcdepplo oojkiabc
サンプルプログラム
では簡単なプログラムで確認して見ます。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my $str = "abcdedcba"; print "対象:$str¥n"; if ($str =~ /cda/){ print "cdaにマッチします¥n"; }else{ print "cdaにマッチしません¥n"; } if ($str =~ /cde/){ print "cdeにマッチします¥n"; }else{ print "cdeにマッチしません¥n"; }
上記を「test3-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
( Written by Tatsuo Ikura )