先頭と末尾を合わせて指定

広告

メタ文字は単独で使用するだけではなく複数のメタ文字を併用して使用することが出来ます。そこで文字列の先頭にマッチする「^」と文字列の最後にマッチする「$」を合わせて使ってみます。

/^パターン$/

メタ文字を除くパターン部分が単純な文字列だった場合、文字列の先頭から始まり文字列の末尾で終わっていることになりますので、結果的にパターン部分で指定した文字列と完全に一致する場合にだけマッチします。

my $str = "abc";

if ($str =~ /^abc$/){
  print "文字列は「abc」です¥n";
}

上記のようにパターンが「/^abc$/」の場合は「文字列の先頭」+「a」+「b」+「c」+「文字列の末尾」と言う5つの連続する単語(正確には「^」や「$」は文字にマッチするものではありませんが)から出来ているパターンと考える事が出来ます。

サンプルプログラム

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

test3-1.pl

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my $str = "homepage";
print "対象:$str¥n";

if ($str =~ /^home$/){
  print "「^home¥$」にマッチします¥n";
}else{
  print "「^home¥$」にマッチしません¥n";
}

$str = "my home";
print "対象:$str¥n";

if ($str =~ /^home$/){
  print "「^home¥$」にマッチします¥n";
}else{
  print "「^home¥$」にマッチしません¥n";
}

$str = "home";
print "対象:$str¥n";
if ($str =~ /^home$/){
  print "「^home¥$」にマッチします¥n";
}else{
  print "「^home¥$」にマッチしません¥n";
}

上記を「test3-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

先頭と末尾を合わせて指定

( Written by Tatsuo Ikura )