Preg_match_all точное совпадение с несколькими словами - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть длинный список ключевых слов, представленных ниже с переменной $skills, которая содержит Shop Supervisor, но не Machine Shop Supervisor:

$text = "Machine Shop Supervisor";
preg_match_all("~\b$skills\b~i", $text, $matchWords);
foreach ($matchWords[0] as $matchWord) {
     echo "<b>MatchWord:</b> " . $matchWord.  "<br>";
 }

Результаты: Руководитель магазина

Как я могу получить точное совпадение $text?поэтому в этом случае не должно быть никаких результатов, поскольку Machine Shop Supervisor отсутствует в списке ключевых слов.

Спасибо.

1 Ответ

0 голосов
/ 16 декабря 2018

Вы должны использовать якоря , а не границы слов , так что это полное совпадение строки.

preg_match_all("~^$skills$~i", $text, $matchWords);

Пробел - это несловой символ, поэтомуэто совпало.

https://3v4l.org/OYlfD

...