阿尔及利亚完全匹配的字符串(用引号引起来)

如何匹配精确的字符串?

例如:

  
      
  1. “食谱:烤箱-绿色薯条”

  2.   
  3. “食谱:培根焗豆

  4.   

如果用户搜索“烤豆”(包括引号),则应仅返回第二个结果。 如果用户搜索烤豆(无引号),则应返回两个结果。

jingleee 回答:阿尔及利亚完全匹配的字符串(用引号引起来)

通过正则表达式测试字符串是否在引号内(如果为1,则用引号引起来),如果是,请删除它们,然后将“搜索部分”拆分为单个单词,并检查每个单词的句子(如果包含)。

如果找到的单词数与搜索到的单词数匹配,则返回句子。

如果您搜索的单词不在引号中,它将以简单的方式检查其是否包含引号,并将其返回。

$word = '\"Beaked Beans\"';
$mystring = "Recipe: Baked Beans with Bacon";

if (preg_match('/^(["\']).*\1$/m',$string) === 1) 
{
  $words = preg_split('/\s+/',str_replace('"',"",$word));
  $matchWordCount = 0;

  foreach( $words as $word) {
    if (strpos($mystring,$word) !== false) {
      $matchWordCount++; 
    } else {
      continue;
    }
  }

  if($matchWordCount === count($words)){
     return $mystring;
  }
} else {
   if (strpos($mystring,$word) !== false) {
      return $mystring;
   }
}

据我所知,这部充满灵魂的作品是有效的,就像我现在就无法测试一样。

本文链接:https://www.f2er.com/3057828.html

大家都在问