- ベストアンサー
マッチした回数を知るには
たとえば$testの中に "abc"という文字列がいくつ(何回)含まれているか? ということを知りたい場合、 どのようにコーディングすればよいのでしょうか? 初歩的な質問で恐縮ですが、どなたかご教示ください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じで出来ます。 $test = "abcxxxxxxabcxxxxabc"; $num = ($test =~ s/abc/abc/g); この$numに置換回数が入ります。 実際には同じ文字で置換する為、$test自体は変化しません。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.2
$test="ababcabcdabcadbc"; $count= @{[$test=~/(abc)/g]}; print $count;
質問者
お礼
ありがとうございます。 ソースそのものの意味は理解できませんでしたが、 お教えいただいた方法で実現できました。 お礼申し上げます。
お礼
ありがとうございます。 通常のように文字列置換して、 そのステータスをチェックすれば 何度マッチしたか回数が入っている、 という考え方なのですね。 よく理解できました。 ありがとうございます。