2011-06-14 3 views
0

나는 단어를 3 자 미만의 제거하려면 다음 정규식을 사용PHP는 : 유니 코드 텍스트의 단어 미만의 세 문자를 제거

$str = preg_replace("!\\b\\w{1,3}\\b!", "", $str); 

$rdu = "/\b[^\b]{1,2}\b/"; 
$str = preg_replace($rdu , " ", " " . $str . " "); 

하지만 유니 코드 텍스트로 나를 돌아 :

� �� �� �������� ��� �� � �� �� �������� ��� �� 
.... 

유니 코드 텍스트에서 3 자 미만의 단어를 제거하는 방법이 있습니까?

THXA

답변

4

사용 u modifier for UTF-8 support : 나는 U를 사용

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

이 제대로 텍스트를 반환하지만, 여전히 3 자 미만의 단어. – Nulled

+0

@NuLLeR :'U'는'u'가 아닙니다. – Gumbo

+0

알아, 나는 너를 사용한다. – Nulled

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

안녕하세요, 귀하의 답변에 감사드립니다. 그러나 여기서는 코드 만 대답하는 것이 바람직하지 않습니다. 이것이 왜 OP의 문제를 해결하는지 설명하기 위해 답을 편집 할 수 있다고 생각하십니까? –

관련 문제