E.g
$stringOriginal = "C D E F G H I J K L M N";
$stringRemove = "E F M";
我想从$ stringOriginal中删除$ stringRemove的字符串!所以,我可以得到
$result = "C D G H I J K L N";
非常感谢!!
答案 0 :(得分:3)
非preg方法
$stringOriginal = "C D E F G H I J K L M N";
$stringRemove = "E F M";
$removals = explode(' ',$stringRemove);
$result = str_replace($removals,'',$stringOriginal);
$result = str_replace(' ',' ',$result);
答案 1 :(得分:2)
使用str_replace $stringRemove
爆炸成阵列。
答案 2 :(得分:2)
假设不再是而不是你问题中提供的内容,我最初的想法是使用preg_replace
并查找这些字符(带有可选空格):
$stringOriginal = "C D E F G H I J K L M N";
print preg_replace('/(E|F|M)\s+?/', '', $stringOriginal);
哪些输出:C D G H I J K L N
答案 3 :(得分:1)
$result= str_replace($stringRemove, "", $stringOriginal);
但是你的$ stringRemove将是array('E', 'F', 'M');
而不是你正在使用的格式。
答案 4 :(得分:1)
使用preg_replace:
//no spaces needed in the filter 'E F M' should be 'EFM' for this function
function specialFilter($body, $filter) {
return preg_replace("/[$filter]/", '', $body);
}
//example usage
$filteredMessage = specialFilter('C D E F G H I J K L M N', 'EFM');
//if double spaces are not allowed after the filtered elements are removed run this
$filteredMessage = str_replace(' ', ' ', $filteredMessage);
见:preg_replace& str_replace
答案 5 :(得分:1)
以下是我要做的事情:
echo implode(' ', str_replace(explode(' ', $stringRemove), '', explode(' ', $stringOriginal)));
它将返回“C D G H I J K L N”,因此您仍然需要检查不正确的空格(这很容易)。
答案 6 :(得分:0)
每个人似乎都在使用str_replace,但我担心有令牌,而值可以嵌套在另一个值中。也许我错了,这有点矫枉过正,但无论如何解决方案:
$stringOriginal = "C D E F G H I J K L M N";
$stringRemove = "E F M";
var_dump(implode(' ',array_diff(explode(' ',$stringOriginal),explode(' ',$stringRemove))));
结果:
string(17) "C D G H I J K L N"