2010-12-01 63 views
5

解析字符串命令数组,我需要知道一个字符串是否包含特定的关键字。如何在没有意外匹配的情况下在PHP中查找字符串中的整个单词?

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

例:

CHECKSOUND 
SOUND 
CHECK 

所以我需要检查,如果当前行有CHECKSOUND,声音或检查命令。

如果我使用类似:

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

然后,它可能会发现CHECKSOUNDSOUND之前,因此无法正确解析。

问题

有没有一种方式,如果发现像CHECKSOUND一个单词的一部分只找到一个整词般的声音,而忽略了发生声音的发生?

我相信我错过了一些简单的东西。

回答

19

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

实施例#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改性剂,这使得“网络”不区分大小写的搜索。

+0

非常好的帮助,谢谢。 – 2010-12-01 15:47:35

相关问题