Регулярное выражение Удалить все английские и арабские цифры? - PullRequest
1 голос
/ 08 октября 2019

Я хочу, чтобы Регулярное выражение удаляло арабские и английские цифры

моя переменная $ variable = "12121212ABDHS تشؤآئ ۳۳۴۳۴729384234 owiswoisw";

Я хочу удалить все цифры! LIKE:

ABDHS HS owiswoisw

Я нашел следующее выражение, но оно не работает!

 $newvariable = preg_replace('/^[\u0621-\u064A]+$', '', $variable);

спасибо за помощь

1 Ответ

1 голос
/ 08 октября 2019

Вы можете использовать

$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)
...