1

我正在使用 substr_count 来计算一个单词被使用的次数。但它没有返回我想要的结果。这是我的示例代码:

<?php
    echo substr_count("The Hello world. Therefore the world is nice","the");
?>

这将返回数字 3,即 3 个字符串。我希望它只返回 2 个。因为有 2 个。第三个是单词的一部分,因此它不是 the。我想到了正则表达式,但我不太擅长这些。有什么建议么 ?

4

5 回答 5

3

您需要在后面添加空格the,它只能包括那些the后面有空格的空格

  <?php
        echo substr_count("The Hello world. Therefore the world is nice","the ");
    ?>
于 2012-11-02T04:36:47.267 回答
1

这是计算子字符串出现次数的另一种方法,

<?php
 $string = "The Hello world. Therefore the world is nice";
 $substring = 'the';

 $cArr = explode($substring,strtolower($string));
 echo $substring_count = count($cArr) - 1;
?>

或者

$wordCounts = array_count_values(str_word_count(strtolower($string),1));
echo $theCount = (isset($wordCounts['the'])) ? $wordCounts['the'] : 0;
于 2012-11-02T04:45:22.257 回答
0

我认为 substr_count 的用法不同。句法:

 int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )

substr_count() 返回 needle 子字符串在 haystack 字符串中出现的次数。请注意针是区分大小写的。

请参考 http://php.net/manual/en/function.substr-count.php

于 2012-11-02T04:32:45.707 回答
0
<?php
  echo preg_match_all('/\bthe\b/i', 'The Hello World. Therefore the world is nice', $m);
?>

第一个参数是模式,其中\b表示单词边界,/i修饰符表示区分大小写。

第二个参数是匹配的主题。

第三个参数填充了匹配数组。我的旧 PHP 需要它,5.4 以后的版本不需要它。

于 2012-11-02T11:51:52.623 回答
0

有 3 个。因此和

尝试这个:

<?php
   echo substr_count("The Hello world. Therefore the world is nice","the ");
?>
于 2012-11-02T04:38:08.767 回答