ヒットした数を取得する(復習)
ずーっと昔に詳説 正規表現 第2版で読んだような覚えがあるんだけど念のために実地で調べた結果。こんな基礎的なことを忘れるようではもう駄目かも。
ある文字列$sampleの中に、それよりも短い文字列$wordが何回含まれているかを調べる。
my @hit = $sample =~ /$word/g;
こうすると、@hitの各要素は先頭からヒットした内容になる。ヒットした回数は@hitの長さを調べればよい。(scalarを使って明示的に調べるのが俺の趣味。)
my $count = scalar @hit;
置換ないし削除しながらヒット数を調べるには、
my $hit = $sample =~ s/$word//g;
$hitがそのまま置換した回数になる。