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