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

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

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

Ex:

CHECKSOUND
SOUND
CHECK

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

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

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

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

вопрос:

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

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

1 ответов


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

Пример #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 модификатор, который делает поиск" веб " нечувствительным к регистру.