我正在使用 PHP 中的一些代码,从搜索引擎获取引用数据,为我提供用户输入的查询。
然后,我想从该字符串中删除某些停用词(如果存在)。但是,该单词两端可能有也可能没有空格。
例如,我一直使用 str_replace 删除一个单词,如下所示:
$keywords = str_replace("for", "", $keywords);
$keywords = str_replace("sale", "", $keywords);
但如果 $keywords 值是“婴儿配方奶粉”,它会将其更改为“婴儿 mula” - 删除“for”部分。
无需创建进一步的 str_replace 来解释“for”和“for” - 是否有一个 preg_replace 类型命令我可以使用,如果发现给定的单词两端都有空格,它将删除给定的单词?
我的想法是将所有停用词放入一个数组中,并以这种方式逐步执行它们,我怀疑 preg_replace 会比逐步执行多个 str_replace 行更快。
UPDATE:感谢你们使用以下组合解决了问题:
$keywords = "...";
$stopwords = array("for","each");
foreach($stopwords as $stopWord)
{
$keywords = preg_replace("/(\b)$stopWord(\b)/", "", $keywords);
}