在php中计算字符串中的确切子字符串

时间:2012-03-10 19:33:25

标签: php

如何知道字符串中子字符串的确切出现次数。例如,考虑以下字符串:

$string = 'The sun is bright, what a beatiful sunlight';

当我搜索“sun”这个词时,我希望它返回1而不是2.当我这样做时会发生:

$counter = substr_count($string, 'sun');

任何想法?

3 个答案:

答案 0 :(得分:3)

$wordCounts = array_count_values(str_word_count($string,1));
$sunCount = (isset($wordCounts['sun'])) ? $wordCounts['sun'] : 0;

区分大小写...如果您想要不区分大小写,则可能需要使用使用单词边界的正则表达式

$sunCount = preg_match_all('/\bsun\b/i',$string);

答案 1 :(得分:1)

可能是作弊,但您始终可以搜索' sun '而不是'sun'。 :)

$counter = substr_count($string, ' sun ');

答案 2 :(得分:0)

$counter = substr_count($string, ' sun ');

但请注意,这不会计算逗号或句号旁边或开头的单词,因此可能对您没有帮助。