1

このあたりの正規表現の達人はいますか?それは私を夢中にさせます。

「書店の本の予約」という文字列があるとします。

これに登場する「本」の数を数えて、その数を返したい。

現在、私はこれが機能していません:

$string = "bookstore books Booking";            
if (preg_match_all('/\b[A-Z]+books\b/', $string, $matches)) {
  echo count($matches[0]) . " matches found";
} else {
  echo "match NOT found";
}

これに加えて、preg_match_all内の「本」は$varになるはずです

正しく数える方法を知っている人はいますか?

4

1 に答える 1

1

実際にははるかに簡単です。次のようにpreg_match_all()を使用できます。

$string = "bookstore books Booking";   
$var = "books";      
if (preg_match_all('/' . $var . '/', $string, $matches)) {
    echo count($matches[0]) . " matches found";
} else {
    echo "match NOT found";
}

または、この目的のために作成された関数substr_count()を使用します。

$string = "bookstore books Booking";   
$var = "books";      
if ($count = substr_count($string, $var)) {
    echo $count . " matches found";
} else {
    echo "match NOT found";
}
于 2012-06-20T15:12:08.407 に答える