本文へスキップ
BecomeCoder

Perlコース · 第7章 正規表現 · レッスン22

マッチ ― =~ とパターン

ブラウザで完結

導入

「この文字列は、あるパターンを含んでいるか?」を調べるのがマッチです。文字列 =~ /パターン/ と書きます。

説明

=~ は「左の文字列にパターンを当てる」演算子です。マッチすれば真、しなければ偽になります。パターンは / / で囲みます。よく使う部品は \d(数字)・\w(英数字と _)・\s(空白)です。

use strict;
use warnings;

my $text = "order-2024";

if ($text =~ /\d/) {
    print "数字を含みます\n";
}
if ($text =~ /order/) {
    print "「order」を含みます\n";
}
print "含まない\n" unless $text =~ /xyz/;

大文字小文字を無視したいときは、末尾に i フラグを付けます。

use strict;
use warnings;

my $name = "Alice";
print "aで始まる(大小無視)\n" if $name =~ /^a/i;   # ^ は行頭

やってみよう

$text やパターンを書き換えて、マッチする・しないの違いを確かめましょう。i フラグの有無も試してください。

演習

my $s = "abc123"; について、$s が数字(\d)を含むなら has digit と表示してください。

ヒント1を見る

print "has digit\n" if $s =~ /\d/;

実際に動かしてみよう

下のエディタにPerlを書いて「実行」を押すと、学習用シミュレータが print / say の出力を表示します(本物のperlではなく、教材の範囲を再現した軽量なエンジンです)。スカラ/配列/ハッシュ・制御構文・サブルーチン・正規表現(=~ / s///)なども動きます。本文の例を書き換えて動かしてみましょう(ファイル入出力・リファレンス・CPANモジュールなど一部の機能は対象外です)。

Perl — ブラウザ内で実行(学習用シミュレータ)

Perlの教材サブセットを動かす学習用シミュレータを読み込みます(本物のperlではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。