检查 EXACT 值是否在字符串 - PHP 中


Check to see if EXACT value is in a string - PHP

我读过许多关于如何查看值是否在字符串中的帖子。显然我的要求是不同的,因为多位代码没有 100% 工作。

我正在搜索一个字符串,需要确保 EXACT 值在那里 - 完美匹配。

$list="Light Rain,Heavy Rain";
$find="Rain";

这应该与我需要做的事情不匹配。我需要它完全匹配。我测试过的所有代码都说它是匹配的 - 我明白为什么。但是,我该怎么做才能使其不匹配,因为雨与小雨或大雨不同?我希望我说得有道理。

我已经尝试过 strpos 和 preg_match,但同样,它们等于匹配 - 但就我的目的而言,不是相等的匹配。

感谢您可能最终成为 DUH 时刻的事情。

如果您需要完全匹配并且$list始终以逗号分隔。为什么不以这种方式检查它们呢?

$list = explode(',', "Light Rain,Heavy Rain");
var_dump(in_array('Rain', $list)); // false
var_dump(in_array('Heavy Rain', $list)); // true

以及是否必须具有正则表达式。

在正则表达式中,确保检查字符串的开头或开头的逗号(^|,),然后检查字符串,然后检查另一个逗号或字符串的结尾 (,|$)?:使他们成为非捕获组,因此它们不会出现在$matches中。

$list = "Light Rain,Heavy Rain";
$test = 'Rain';
preg_match("/(?:^|,)($test)(?:,|$)/", $list, $matches);
var_dump(!empty($matches)); // false
$test = 'Heavy Rain';
preg_match("/(?:^|,)($test)(?:,|$)/", $list, $matches);
var_dump(!empty($matches)); // true

试试这个:

$list="Light Rain,Heavy Rain";
$find="Light";
if(strpos($list,$find) !== false) 
{
    echo 'true';
}
else
{
    echo 'false';
}

学分:https://stackoverflow.com/a/4366748/4660348