導入
「この文字列は、あるパターンを含んでいるか?」を調べるのがマッチです。文字列 =~ /パターン/ と書きます。
説明
=~ は「左の文字列にパターンを当てる」演算子です。マッチすれば真、しなければ偽になります。パターンは / / で囲みます。よく使う部品は \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/;。