Как найти целое слово в строке на PHP без случайных совпадений?

Разбор массива строковых команд мне нужно знать, содержит ли строка определенное ключевое слово.

Звучит просто, я знаю, но проблема возникает, когда ключевое слово команды также может быть частью другого слова.

Пример:

CHECKSOUND SOUND CHECK 

Поэтому мне нужно проверить, есть ли в текущей строке команда CHECKSOUND, SOUND или CHECK.

Если я использую что-то вроде:

 if(stristr($line,'SOUND') == true) 

Затем он может найти CHECKSOUND перед SOUND и, следовательно, не разобрать правильно.

Вопрос :

Есть ли способ найти только появление целого слова, такого как SOUND, и игнорировать появление SOUND, если оно будет найдено как часть другого слова, такого как CHECKSOUND?

Я уверен, что мне не хватает чего-то простого здесь.

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

Пример № 2 из документации по preg_match :

 /* The \b in the pattern indicates a word boundary, so only the distinct * word "web" is matched, and not a word partial like "webbing" or "cobweb" */ if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) { echo "A match was found."; } else { echo "A match was not found."; } 

Обратите внимание, что в приведенном выше примере используется модификатор i , который делает поиск «веб-регистр» нечувствительным.