我有这个文字
اريد ان احذف هذا النص english text من الجمله 123
应用此RE(PHP代码)后:
$tag = preg_replace("/^[a-zA-Z0-9]+$/", '',$tag);
预期结果是:اريداناحذفهذاالنصمنالجمله
但我得到了اريداناحذفهذاالنص英文文本منالجمله123
RE有什么问题?
答案 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);