这是我的问题,我在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
答案 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));
}