• ベストアンサー

マッチした回数を知るには

たとえば$testの中に "abc"という文字列がいくつ(何回)含まれているか? ということを知りたい場合、 どのようにコーディングすればよいのでしょうか? 初歩的な質問で恐縮ですが、どなたかご教示ください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • asahina02
  • ベストアンサー率47% (95/202)
回答No.1

こんな感じで出来ます。 $test = "abcxxxxxxabcxxxxabc"; $num = ($test =~ s/abc/abc/g); この$numに置換回数が入ります。 実際には同じ文字で置換する為、$test自体は変化しません。

Koji001
質問者

お礼

ありがとうございます。 通常のように文字列置換して、 そのステータスをチェックすれば 何度マッチしたか回数が入っている、 という考え方なのですね。 よく理解できました。 ありがとうございます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

$test="ababcabcdabcadbc"; $count= @{[$test=~/(abc)/g]}; print $count;

Koji001
質問者

お礼

ありがとうございます。 ソースそのものの意味は理解できませんでしたが、 お教えいただいた方法で実現できました。 お礼申し上げます。

専門家に質問してみよう