在字符串中查找确切的字符串

时间:2013-04-29 16:38:43

标签: php string

我有两个字符串“Mures”和“Maramures”。我如何建立一个搜索功能,当有人搜索Mures时,它只返回包含“Mures”字样的帖子,而不是包含“Maramures”字样的帖子。我试过strstr直到现在,但现在确实有效。

7 个答案:

答案 0 :(得分:14)

您可以使用正则表达式执行此操作,并使用\b字边界

包围该单词

preg_match("~\bMures\b~",$string)

示例:

$string = 'Maramures';
if ( preg_match("~\bMures\b~",$string) )
  echo "matched";
else
  echo "no match";

答案 1 :(得分:5)

使用preg_match函数

if (preg_match("/\bMures\b/i", $string)) {
    echo "OK.";
} else {
    echo "KO.";
}

答案 2 :(得分:1)

你如何检查strstr的结果?试试这里:

$string = 'Maramures';
$search = 'Mures';
$contains = strstr(strtolower($string), strtolower($search)) !== false;

答案 3 :(得分:0)

也许这是一个愚蠢的解决方案而且有一个更好的解决方案。但是您可以在字符串的开头和结尾处为源和目标字符串添加空格,然后搜索“Mures”。易于实施,无需使用任何其他功能:)

答案 4 :(得分:0)

你可以做各种事情:

  • 搜索' Mures' (周围的空间)
  • 搜索区分大小写(因此' mures'将在' Maramures'但' Mures'赢得')
  • 使用正则表达式搜索字符串('字边界+ Mures +字边界') - 看看这个:Php find string with regex

答案 5 :(得分:0)

function containsString($needle, $tag_array){
    foreach($tag_array as $tag){
        if(strpos($tag,$needle) !== False){
            echo $tag . " contains the string " . $needle . "<br />";
        } else {        
            echo $tag . " does not contain the string " . $needle;
        }

    }
}
$tag_array = ['Mures','Maramures'];
$needle    = 'Mures';
containsString($needle, $tag_array);

这样的功能可行......尽管不如preg_match那么性感。

答案 6 :(得分:0)

非常简单的方法应与此类似。

    $stirng = 'Mures';

    if (preg_match("/$string/", $text)) {
        // Matched
    } else {
        // Not matched
    }