从阿拉伯语UTF8 +英语字符串中删除非字母数字字符

Wal*_*der 5 php regex utf-8 arabic ereg-replace

我想从字符串中删除所有非阿拉伯语,非英语和非数字字符,除了破折号( - ).

我设法为非英语字母数字字符这样做:

$slug = ereg_replace('[^A-Za-z0-9-]', '', $string);
Run Code Online (Sandbox Code Playgroud)

但对于非阿拉伯语字母数字字符,我试图这样做:

$slug = ereg_replace('\p{InArabic}', '', $string);
Run Code Online (Sandbox Code Playgroud)

但它没有删除非字母数字字符!我也试过这个答案,但它也没有用,它总是返回'0'!

$slug = preg_replace('/[^\x{0600}-\x{06FF}A-Za-z0-9-]/u','', $string);
Run Code Online (Sandbox Code Playgroud)

希望有人可以帮助我.

xda*_*azz 9

试试以下内容:

$slug = preg_replace('/[^\p{Arabic}\da-z-]/ui', '', $string);
Run Code Online (Sandbox Code Playgroud)