「=~」 - パターンマッチ演算子
「=~」は「パターンマッチ演算子」と呼ばれ、正規表現でパターンマッチと置換を行うときに利用します。
パターンマッチ
文字列が、指定した正規表現を含むかどうかを調べるには次のようにします。
$message =~ /play/
$string =~ /正規表現/。$string が 正規表現を含んでいれば、0以外が返ります。=~ を、パターンマッチ演算子と呼びます。今回の例では、正規表現を使わずに play という文字を使っています。
パターンマッチしない
文字列が、指定した正規表現を含まないかを調べるには次のようにします。
$message !~ /you/
$string !~ /正規表現/。$string が 正規表現を含んでいなければ、0以外が返ります。
置換
正規表現によって文字列を置換するには次のようにします。
$message =~ s/tennis/baseball/;
$string =~ s/正規表現/置換する文字列/。$string が、正規表現を含んでいれば、指定した文字列で置き換えます。$message そのものが、置き換わります。
サンプル
正規表現によるパターンマッチと置換とサンプルです。
use strict; use warnings; # 正規表現によるパターンマッチと置換 my $message = 'I play tennis.'; print "\$message = '$message' \n\n"; # パターンマッチの基本( $var =~ /正規表現/ ) ( ここでは、単なる文字列( play )で説明 ) print "1: 文字列が、 play を含んでいるかどうかを調べる。\n"; if ($message =~ /play/) { print "\$message は、playを含んでいます。\n\n"; } print "2: 文字列が、youを含んでいないかどうかを調べる。\n"; if ($message !~ /you/) { print "\$message は、youを含んでいません。\n\n"; } # 置換の基本 print "3: 文字列の tennis を baseball に置換する。\n"; # $var =~ s/正規表現/置換する文字列/ $message =~ s/tennis/baseball/; print "$message\n";