Perlゼミ

  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";
Perlの書籍
  • 初めてのPerl 第7版

    Perl入門 定番の一冊
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
  • 詳説 正規表現

    正規表現の詳細な解説
  • Perlの書籍販売 14冊 »
自己紹介
木本裕紀(きもとゆうき)

Twitter

フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎
Perlの求人広告募集中