0

在我的例子中,我只想从$input中删除$commonWords数组中可用的字符串。

$input = "perg-replace my string perge replace";

function removeCommonWords($input){  
  $commonWords = array('my','perge');
  return preg_replace('/\b('.implode('|',$commonWords).')\b/','',$input);
}

我预期的结果是:

" perg-replace 字符串替换"

但是,我从上面的函数得到的结果是:

-replace字符串替换”

如何告诉 perg_replace 阅读“ perg-replace ”有一个单词?

更新:

下面的代码对我有用:

return preg_replace('/(?<![-\'"])\b('.implode('|',$commonWords).')\b(?![-'"])i','',$input);
4

4 回答 4

1

尝试这个 ... ?

function removeCommonWords($input) {
  $commonWords = array('my','perge');
  return implode(' ', array_filter(explode(' ', $input), function($word) use ($commonWords) {
    return !in_array($word, $commonWords);
  }));
}
于 2013-03-01T08:11:29.937 回答
0

尝试这个 :

// 你的字符串。
$str = "perg-replace 我的字符串 perge 替换";

// 需要删除的关键字列表。
$keywords = array('my','perge');

// 遍历列表。
foreach($keywords 作为 $keyword)
{
    $str = preg_replace("/($keyword)/i","",$str);
}

回声 $str;
于 2013-03-01T08:17:34.513 回答
0

尝试这个,

$input = "perg-replace my string perge replace";
function removeCommonWords($input){  
  $commonWords = array('/my/','/perge/');
  return preg_replace($commonWords,'',$input);
}
echo removeCommonWords($input);
于 2013-03-01T08:23:50.717 回答
0
$input = "perg-replace my string perge replace";

function removeCommonWords($input){  
  $commonWords = array('my','perge');
  return preg_replace('/\b('.implode('|',$commonWords).')\b/','',$input);
}

echo removeCommonWords($input);
于 2013-03-01T08:28:23.793 回答