Cadena UTF 8 elimina todos los caracteres invisibles excepto la nueva línea
Estoy usando la siguiente expresión regular para eliminar todos los caracteres invisibles de una cadena UTF-8:
$string = preg_replace('/\p{C}+/u', '', $string);
Esto funciona bien, pero ¿cómo lo modifico para que elimine todos los caracteres invisibles EXCEPTO las nuevas líneas? Intenté algunas cosas usando [^ \ n] etc. pero no funciona.
¡Gracias por ayudar!
Edición: el carácter de nueva línea es '\ n'