『初めてのPerl』第7章 正規表現の世界

後方参照(キャプチャした部分文字列を正規表現パターンの中で再利用する):

#!/usr/bin/env perl
use v5.12;
use warnings;
# 同じ文字列が連続するパターンがあれば「matched」、なければ「not matched」を表示する
sub is_matched {
my $_ = shift;
if (/([0-9][0-9])1/) { # 2組の数字が連続しているパターンにマッチ(組み合わせは何でもよい)
say "matched";
} else {
say "not matched";
}
}
is_matched "121"; # not matched
is_matched "3434"; # matched
is_matched "555555"; # matched

Perlの文字クラスショートカットがマッチするのは、ASCII文字だけではない

#!/usr/bin/env perl
use v5.12;
use warnings;
use utf8;
# my $_ = '一'; # 漢字の「1」 ← こっちはマッチしない
my $_ = '1'; # 全角数字の「1」
if (/d/) { # 数字のショートカット
say "matched d"; # "matched"!!!
}
if (/[0-9]/) { # こっちにはマッチしない
say "matched [0-9]";
}

コメントをどうぞ

コメントを残す