トップページhp
7コメント1KB

マッチ演算子でマッチする数

■ このスレッドは過去ログ倉庫に格納されています
0001ひろゆきNGNG
マッチ演算子でマッチした数をかぞえることはできるんでしょうか?
if($match =~ /aaa/){
#ここで、マッチした数が5個以上なら、、とかそういう設定をしたいのです。
}
よろしくお願い致します。
0002名無しさんNGNG
もしかして検索システム作ってるんすか??
0003ひろゆきNGNG
いや、荒し対策です。。改行が多すぎるときははねようかなと、、、
0004ニポポNGNG
########################################
$foo = "foofoofoo";
$matches = ($foo =~ s/foo/foo/g);

print "matches for \"foo\" ($matches matches)\n";


結果:
matches for "foo" (3 matches)

########################################

こんなのでいいのかい? これじゃダメかい?
(うちのマックのMacPerl付属のShuckによると、これでいいっすよ、とのこと)
0005ひろゆきNGNG
()で囲むとその数字がはいるんですか?
知りませんでした。。ありがとうございます!!!
0006tokijiroNGNG
ラクダ本によれば 文字数ならtr演算子でも数えられますね。
$_ = "aaaa";
if (3<tr/a-z//) {
print "get out !";
}

文字列ならパターンマッチにgオプションを付けて
$_="foo foo foo";
while (/foo/g) {
$count++;
print "get out !" if ($count>2);

}

みたいな感じで。
0007ひろゆきNGNG
whileでカウントですかぁ、、
いろんな方法があるんですね。どうもです。
■ このスレッドは過去ログ倉庫に格納されています