1

ここに私の問題があります.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
4

3 に答える 3

1

正規表現でそれを行うことができますが、単語の境界である\bため機能しませんが、そのようなものは機能するはずです:/

preg_match_all(",meters([^/]|$),", $text, $matches);
print_r($matches[0]);
于 2013-06-29T21:25:29.023 に答える
0
$exists = preg_match("/\bmeters\b/", $text) ;

\b単語境界を表します。

于 2013-06-29T21:21:30.500 に答える
0

やりたいことをするには、正規表現を使用する必要があります。何かのようなもの:

$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));
}
于 2013-06-29T21:21:37.703 に答える