В общем в качестве альтернативы, попробуйте выдернуть регулярку из моего варианта php.
preg_replace('#[^А-ЯЁа-яёa-zA-Z0-9\!\@\"\#\№\$\;\%\:\^\&\?\*\(\)\-\_\+\=\|\{\}\[\]\,\.\<\>\'\ \\\/]#u', '', $str);
Иногда бывает при парсинге попадаются не стандартные символов юникода.