php Регулярные выражения -- Удалить спецсимволы и лишние пробелы

Пример валидации вводимых пользователем данных.

// достаём введённые пользователем данные
 $enteredName = $request->get('name');

// заменяем на пустую строку (удаляем) все символы, кроме указанных (все буквы, цифры , пробелы и знак "-")
 $name = preg_replace('/[^a-zA-ZА-Яа-я0-9-\s$]/u', '', $enteredName);
 
// заменяем на пустую строку (удаляем) все лишние пробелы (т.е, начиная со вторго, если они идут подряд)
 $name= preg_replace('/\s{2,}/', ' ', $name);

Также стоит обратить внимание на модификатор u: при использовании шаблон и целевая строка обрабатываются как UTF-8 строки.

Источники