检查字符串中的多个单词并显示找到/未找到的单词

  • 本文关键字:单词 显示 字符串 php regex
  • 更新时间 :
  • 英文 :


我正在使用此处anubhava的示例检查字符串中的多个单词。但是,我不确定如何显示字符串中找到的单词和找不到的单词。任何想法如何实现这一目标。我使用的代码如下所示。

$bad_words = array("yo","hi");
$sentence = "yo you your";
preg_match_all('/w+/', $sentence, $m);
echo ( array_diff ( $m[0], $bad_words ) === $m[0] ) ? "no bad words foundn" :
"bad words foundn";

首先,您需要定义在此上下文中单词是什么。例如,">煎饼"是一个词还是两个词?如果你搜索">pan",如果找到">pancake",它应该返回true吗?另外,">人工智能"是一个词吗?">2020"是一个词吗?">快速通道"呢?搜索是否应区分大小写?它应该包括部分发现吗?如果您只是想要像strpos这样的简单针/大海捞针搜索,那么解决方案是微不足道的。

$searchWords = ["yo","hi"];
$sentence    = "yo you your";
$wordsFound  = [];
foreach ($searchWords as $word) {
if (stripos($sentence, $word) !== false) {
$wordsFound[$word] = true;
}
}
echo "Words found: ", implode(",", array_keys($wordsFound)); // Words found: yo

要找到$searchWords中找不到的单词,您只需$wordsNotFound = array_diff($searchWords, array_keys($wordsFound)).

最新更新