2012-10-06 5 views

답변

43

당신은 trim()을 사용하여, 그것을 위해 정규식을 필요로하지 않습니다

$words = '  my words  '; 
$words = trim($words); 
var_dump($words); 
// string(8) "my words" 

이 기능은 시작과 STR의 끝에서 공백을 제거한 문자열을 반환합니다. 완성도를 들어

+0

어떻게 이런 방식으로 작동하지 않습니까? 나는 여전히 문자열 뒤에 흰 공백을 참조하십시오. 어떤 힌트? 누구? – ihue

+0

아마도 그들은 정말로 공백이 아닙니다. Office Word에서이 문제가 발생했습니다. –

5

(이 질문에 regex 태그대로는) 여기 정규식에서 trim() 재 구현입니다 : didnt가 위의 두 솔루션은 나를 위해 일한 어떤 이유

function preg_trim($subject) { 
    $regex = "/\s*(\.*)\s*/s"; 
    if (preg_match ($regex, $subject, $matches)) { 
     $subject = $matches[1]; 
    } 
    return $subject; 
} 
$words = '  my words  '; 
$words = preg_trim($words); 
var_dump($words); 
// string(8) "my words" 
1

, 그래서 난이 솔루션을 함께했다.

function cleanSpaces($string) { 
    while(substr($string, 0,1)==" ") 
    { 
     $string = substr($string, 1); 
     cleanSpaces($string); 
    } 
    while(substr($string, -1)==" ") 
    { 
     $string = substr($string, 0, -1); 
     cleanSpaces($string); 
    } 
    return $string; 
} 
+0

이것이 작동하는 동안 재귀에 대한 오버 헤드로 인해 매우 느리고 비효율적입니다. 왜 모든 문자열에 잘 작동해야하므로 트림이 당신을 위해 작동하지 않았는지 모르겠습니다. –

관련 문제