「=~」 - パターンマッチ演算子



  1. Perl




  2. 演算子



  3. here

「=~」は「パターンマッチ演算子」と呼ばれ、正規表現でパターンマッチと置換を行うときに利用します。

パターンマッチ

 文字列が、指定した正規表現を含むかどうかを調べるには次のようにします。

$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";



  1. Perl




  2. 演算子



  3. here