Preg_match_all точное совпадение с несколькими словами

У меня есть длинный список ключевых слов, представленных ниже с переменной $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 нет в списке ключевых слов.

Благодарю.

0

Решение

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

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

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

https://3v4l.org/OYlfD

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]