2016-06-13 91 views
0

我想查找文本中的整个单词而不是子字符串。 我写了下面的代码。Php使用正则表达式在文本中查找单词

$str = 'its so old now.'; 
$a = 'so'; 
if (stripos($str,$a) !== false) { 
echo 'true'; 
} else { 
echo 'false'; 
} 

str1 = 'its so old now.'; 
str2 = 'it has some issue.'; 

我想在文本中找到单词'so'。它在字符串中都是真实的。但我只想在第一种情况下是正确的,因为在第二个字符串中'so'包含'some'字。

在此先感谢

+1

可能重复[检查字符串是否包含特定单词?](http://stackoverflow.com/questions/4366730/check-if-string-contains-specific-words) –

回答

2

\b可以在正则表达式可以用来匹配单词边界。

\bso\b 

应该只匹配so当它是它自己:

if(preg_match('/\bso\b/',$str)){ 
    echo "Matches!"; 
} 

注意preg_match出错返回0上没有匹配和false所以你不妨检查这些值。以上内容也不区分大小写。您可以使用/\bso\b/i忽略大小写。