如何在PHP中查找字符串中的整个单词而不会发生意外匹配?

Tod*_*ses 8 php regex parsing

解析一系列字符串命令,我需要知道一个字符串是否包含特定的关键字.

听起来很简单我知道,但是当命令关键字也可能是另一个单词的一部分时,就会出现问题.

例如:

CHECKSOUND
SOUND
CHECK
Run Code Online (Sandbox Code Playgroud)

所以我需要检查当前行是否有CHECKSOUND,SOUND或CHECK命令.

如果我使用类似的东西:

if(stristr($line,'SOUND') == true)
Run Code Online (Sandbox Code Playgroud)

然后它可能在CHECKSOUND之前找到SOUND,因此无法正确解析.

问题:

有没有办法只找到一个整词般的声音的发生,如果发现像CHECKSOUND一个单词的一部分忽视了发生的声音?

我相信我在这里缺少一些简单的东西.

Jon*_*Jon 24

您可以使用正则表达式轻松实现目标.

示例#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.";
 }
Run Code Online (Sandbox Code Playgroud)

请注意,上面的示例使用i修饰符,这使得搜索"web"不区分大小写.