Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発なら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";
Qiitaで
「3分間Perlテキストクッキング」
という連載を始めました。
テキスト処理を題材にして、3分くらいで読める分量で、書いていきます。
文字コード、テキストデータ、コンピュータにおけるテキストの扱いなど、ソフトウェアの基礎の話題も
3分間Perlテキストクッキング