你的字符串总是用加号分隔吗?555、A 和 B 是否总是出现在第一个“组”中(由 + 分隔)?
如果是这样,您可以拆分、替换然后加入:
$input = '+Z1A124B555+A124AB+A555';
$array = explode('+', $input, 3); // max 3 elements
$array[2] = str_replace(array('555', 'A', 'B'), '', $array[2]);
$output = implode('+', $array);
附言。当我们可以使用简单的 str_replace 时,无需使用正则表达式
使用preg_replace_callback
功能:
$replaced = array('555' => 0, 'A' => 0, 'B' => 0);
$input = '+Z1A124B555+A124AB+A555';
$output = preg_replace_callback('/555|[AB]/', function($matches) {
static $replaced = 0;
if($replaced++ == 0) return $matches[0];
return '';
}, $input);