You can just include allowed characters in your character class:
$replaced = preg_replace("/[^\p{L}0-9()@_'&-]+/u", '', $string);
ALso better to use a quantifier +
here to make replacement process more efficient since multiple characters will be matched and replaced in each call.