PHP从文本中查找所有出现的整个单词

时间:2013-06-29 21:09:59

标签: php text words

这是我的问题,我在PHP中有一个文本:

$text = "Car is going with 10 meters/second"

$find = array("meters","meters/second");

现在当我这样做时:

 foreach ($find as $f)
   {
     $count = substr_count($text,$f);
    } 

输出结果为:

meters -> 1
meters/second -> 1 

通常我会将米/秒视为整个单词,因此米不应计算,只有米/秒,因为没有空格分隔它们

因此我的期望:

meters -> 0
meters/second -> 1

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式执行此操作,\b将无法正常工作,因为/是一个单词边界,但类似的东西应该有效:

preg_match_all(",meters([^/]|$),", $text, $matches);
print_r($matches[0]);

答案 1 :(得分:0)

$exists = preg_match("/\bmeters\b/", $text) ;

\b代表字边界。

答案 2 :(得分:0)

要做你想做的事,你必须使用regular expressions。类似的东西:

$text = "Car is going with 10 meters/second";
$find = array("/\bmeters\b/", "/\bmeters\/second\b/");

foreach($find as $f) {
    print(preg_match_all($f, $text));
}