Из документации на preg_replace () :
Возвращаемые значения
preg_replace () возвращает массив, если
Параметр объекта представляет собой массив или
иначе строка.
Если совпадения найдены, новый предмет
будет возвращен, в противном случае тема
будет возвращен без изменений или NULL, если
произошла ошибка.
В вашем паттерне я не думаю, что флаг u поддерживается. НЕПРАВИЛЬНО
Редактировать: Кажется, что-то вроде проблемы с кодировкой субъекта. Когда я стираю «147 3,2 V6 - GTA (184 кВт)» и вручную набираю текст, кажется, все работает.
Редактировать 2: В предоставленном вами шаблоне есть 3 пробела, которые, похоже, создают проблемы для механизма регулярных выражений. Когда я конвертирую их в десятичную, их значение равно 160 (в отличие от обычного пробела 32). Когда я заменяю эти пробелы нормальными, это, кажется, работает.
Я заменил ошибочные пробелы на подчеркивания ниже:
'147 3.2 V6 - GTA (184 kW)'
'147 3.2_V6 - GTA_(184_kW)'