我需要从字符串中删除所有非阿拉伯字符,并最终在堆栈溢出的人的帮助下能够提出以下正则表达式来摆脱所有不是阿拉伯语的字符.
preg_replace('/[^\x{0600}-\x{06FF}]/u','',$string);
Run Code Online (Sandbox Code Playgroud)
问题是上面也删除了空格.现在我发现我也需要角色A-Z,a-z,0-9, !@#$%^&*()
.那么我该如何修改正则表达式呢?
感谢您
Ray*_*oal 10
将要保留的内容添加到角色类中:
preg_replace('/[^\x{0600}-\x{06FF}A-Za-z !@#$%^&*()]/u','', $string);
Run Code Online (Sandbox Code Playgroud)
假设你有这个字符串:
$str = "Arabic Text ?? ???? test 123 ?,.m,............ ~~~ ??]??}~?]?}";
Run Code Online (Sandbox Code Playgroud)
这将只保留带有空格的阿拉伯字符。
echo preg_replace('/[^?-? ]/ui', '', $str);
Run Code Online (Sandbox Code Playgroud)
这将仅保留数字的阿拉伯语和英语字符
echo preg_replace('/[^?-?A-Za-z0-9 ]/ui', '', $str);
Run Code Online (Sandbox Code Playgroud)
这将在稍后回答您的问题。
echo preg_replace('/[^?-?A-Za-z !@#$%^&*()]/ui', '', $str);
Run Code Online (Sandbox Code Playgroud)