prova usando questa:
codice:
$newStr = preg_replace('/^(.*;).*?$/','$1'.$str_sostitutiva,$tua_stringa);