正则表达式删除所有英文和阿拉伯数字?

Regular Expression Remove all English and Arabic numbers?

我想让正则表达式去掉阿拉伯数字和英文数字

我的变量是 $variable="12121212ABDHSªشوآئ33434729384234owiswoisw";

我要删除所有数字!喜欢:

ABDHSªشآئowiswoisw

我找到了以下表达式,但不起作用!

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

谢谢你的帮助

您可以使用

$newvariable = preg_replace('/\d+/u', '', $variable);

regex demo

默认情况下,\d 匹配 ASCII 数字,但是当您添加 u 修饰符时,它会启用 PCRE_UCP 选项(连同 PCRE_UTF8),从而启用 \d 来匹配所有的 Unicode 数字。

参见PCRE documentation

This option changes the way PCRE processes \B, \b, \D, \d, \S, \s, \W, \w, and some of the POSIX character classes. By default, only ASCII characters are recognized, but if PCRE_UCP is set, Unicode properties are used instead to classify characters.

如果您只需要将匹配限制为 ASCII 和您选择的那些,您可以修复您的正则表达式:

preg_replace('/[0-9\u0621-\u064A]+/u', '', $variable)