Вы можете использовать
$newvariable = preg_replace('/\d+/u', '', $variable);
См. Демоверсию regex
\d
соответствует цифрам ASCII по умолчанию, но при добавлении модификатора u
, он включает опцию PCRE_UCP
(вместе с PCRE_UTF8
), которая позволяет \d
соответствовать всем цифрам Unicode.
См. Документация PCRE :
Этот параметр изменяет способ обработки PCRE \ B, \ b, \ D, \ d, \ S, \ s,\ W, \ w и некоторые классы символов POSIX. По умолчанию распознаются только символы ASCII, но если установлен PCRE_UCP, вместо классификации используются свойства Unicode.
Вы можете исправить свое регулярное выражение, если нужно ограничить сопоставление только с ASCII и теми изваш выбор:
preg_replace('/[0-9\u0621-\u064A]+/u', '', $variable)