preg_replace удалить специальные символы

интересно, как я могу заменить все специальные символы на моей строке, например: hello this is a test!

Я написал этот код:

 $text = preg_replace("/[^A-Za-z0-9]/", ' ', $text); 

Для этого требуется большая гибкость, чтобы использовать специальные символы, такие как áéíóú... и удалять только определенные символы, такие как :!"#$%&/()=?¿¡

Есть идеи?

Solutions Collecting From Web of "preg_replace удалить специальные символы"