Замените ваш \w+
на .+
, чтобы включить все символы, а не просто слова.Или все символы , за исключением '
, например: [^\']+
Обновленная версия:
$match = array('~(?:face\=[\'"]?([^\']+)[\'"]?)~i', '~~i');
$replace = array('font-family:$1;', '<span style="$1">');