我想从阿拉伯语文本中删除所有英文字符和数字

时间:2015-02-03 11:15:30

标签: php regex

我有这个文字

اريد ان احذف هذا النص english text من الجمله 123

应用此RE(PHP代码)后:

$tag = preg_replace("/^[a-zA-Z0-9]+$/", '',$tag);

预期结果是:اريداناحذفهذاالنصمنالجمله

但我得到了اريداناحذفهذاالنص英文文本منالجمله123

RE有什么问题?

3 个答案:

答案 0 :(得分:2)

$tag = preg_replace("/^[a-zA-Z0-9]+$/", '',$tag);更改此

$tag = preg_replace("/[a-zA-Z0-9]+/", '',$tag);

从正则表达式中删除^ $ end标记 并尝试

答案 1 :(得分:2)

问题是使用令牌来匹配字符串的开头(^)和结束($),因此不匹配,并且不再进行替换。您应该删除它们和修改后的RegEx
/[a-zA-Z0-9]*/
会工作的。
更新
根据您对已接受答案的评论请求,此处为an improved RegEx以满足您的需求。

答案 2 :(得分:2)

试试这个......

    $testString = "اريد ان احذف هذا النص english text من الجمله 123";

 echo $newString = preg_replace("/[a-zA-Z0-9]+/", '',$testString);