PHP:删除unicode文本中少于3个字符的单词

问题描述

|| 我使用这些正则表达式删除少于3个字符的单词:
$str = preg_replace(\"!\\\\b\\\\w{1,3}\\\\b!\",\"\",$str);  
$rdu = \"/\\b[^\\b]{1,2}\\b/\";
$str = preg_replace($rdu,\" \",\" \" . $str . \" \"); 
但是以unicode文本返回我:
� �� �� �������� ��� �� � �� �� �������� ��� �� 
....
有或没有正则表达式,有什么办法可以删除unicode文本中少于3个字符的单词? THXA     

解决方法

        将u修饰符用于UTF-8支持:
/\\b\\w{1,2}\\b/u
    ,        
function RemoveLess($String,$Char=2)
{

    $StringArray=explode (\" \",$String);

    foreach ($StringArray as &$Word) 
    {
        if (mb_strlen($Word,\"UTF-8\")>$Char)
        {
            $Str.=$Word.\" \";
        }
    }

    return trim($Str);

}


$text=\"any text here - لا اله إلا الله محمد رسول الله\";

echo RemoveLess($text);
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...