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

时间:2011-06-14 19:19:05

标签: regex unicode character

我使用这些正则表达式删除少于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

2 个答案:

答案 0 :(得分:4)

使用u modifier for UTF-8 support

/\b\w{1,2}\b/u

答案 1 :(得分:0)

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);