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 回答