2012-10-06 11 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

これは動作する可能性がありますが、再帰のオーバーヘッドにより、これは非常に遅く非効率的になります。私はそれがどんな文字列でもうまく動作するはずなのになぜトリムがうまくいかないのか分かりません。 –

関連する問題