我有以下功能,我希望它在单个单词中只剥去“alpha” 而不是复合单词的一部分,例如“阿尔法狗”。现在,我只是看到“狗”,并不好。任何帮助?仅当单个单词时剥去一个单词,而不是复合单词的一部分
function stripwords($string)
{
// build pattern once
static $pattern = null;
if ($pattern === null) {
// pull words to remove from somewhere
$words = array('alpha', 'beta', '-');
// escape special characters
foreach ($words as &$word) {
$word = preg_quote($word, '#');
}
// combine to regex
$pattern = '#\b(' . join('|', $words) . ')\b\s*#iS';
}
$print = preg_replace($pattern, '', $string);
list($firstpart)=explode('+', $print);
return $firstpart;
}
编辑:您好,我有一个问题...我上面用功能的新版本编辑:它去除的话,调整的空格,然后做别的东西,我需要的,但它不删除破折号(或减号)...出了什么问题?我试过的东西,但无济于事...感谢
你的代码最初发布了一些我见过的最丑陋的。花点时间让它变得可读,你将有更好的机会获得答案。 –
对不起,但这不是我的错误......或者不完全。我不知道为什么,当我把代码放在行上时,底部的代码开箱即可... – smepie
了解,它足以突出显示文本并单击代码括号图标... – smepie