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'

Respuestas a la pregunta(3)

Su respuesta a la pregunta