2010-01-29 88 views
0

我想检查字符串'client'中是否存在搜索关键字'cli'或'ent'或'cl'这个词,并且不区分大小写。我使用了模式'\ bclient \ b'的preg_match函数。但它没有显示正确的结果。找不到匹配错误。使用php比较部分字符串

请任何人能帮助

感谢

回答

2

我不会用正则表达式这一点,它的额外开销和复杂性,其中一个普通字符串函数就足够了。为什么不用stripos()呢?

$str = 'client'; 
$terms = array('cli','ent','cl'); 
foreach($terms as $t) { 
    if (stripos($str,$t) !== false) { 
     echo "$t exists in $str"; 
     break; 
    } 
} 
+0

不要忘了'的strstr()'' – alex 2010-01-29 06:11:18

+0

strpos()/ stripos函数()'是更快,更高效的内存比'strstr()/ stristr()'更好,如果你只需要知道给定的子字符串是否存在。 – zombat 2010-01-29 06:15:15

+0

echo stripos('client',$ filterstr);结果显示为0。当我的搜索关键字='cli' – 2010-01-29 06:16:17

0

尝试模式/cli?|ent/

说明:

CLI中的第一部分相匹配。我?使我在搜索中可选。

|表示或者匹配client

0

\b是单词边界,它不会在client匹配cli,你需要删除\b