「=~」 - パターンマッチ演算子
「=~」は「パターンマッチ演算子」と呼ばれ、正規表現でパターンマッチと置換を行うときに利用します。
パターンマッチ
文字列が、指定した正規表現を含むかどうかを調べるには次のようにします。
$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";
Perlゼミ

