在我的情况下,我只是想从$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 string replace
但是,我从上面的函数得到的结果是:
"-replace string replace"
如何告诉perg_replace读取" perg_replace "有一个单词?
更新:
下面的代码为我工作:
return preg_replace('/(?<![-''"])'b('.implode('|',$commonWords).')'b(?![-'"])i','',$input);
试试这个…
?function removeCommonWords($input) {
$commonWords = array('my','perge');
return implode(' ', array_filter(explode(' ', $input), function($word) use ($commonWords) {
return !in_array($word, $commonWords);
}));
}
试试这个:
<>之前//你的字符串。$str = "字符串替换";//需要删除的关键字列表。$keywords = array('my','perge');//遍历列表。Foreach ($keywords作为$keyword){$str = preg_replace("/($keyword)/i",",$str);}echo $ str;试试这个,
$input = "perg-replace my string perge replace";
function removeCommonWords($input){
$commonWords = array('/my/','/perge/');
return preg_replace($commonWords,'',$input);
}
echo removeCommonWords($input);
$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);